【问题标题】:AngularJS Assoc Array ForeachAngularJS Assoc 数组 Foreach
【发布时间】:2013-02-20 00:01:35
【问题描述】:

在这个 AngularJS 关联数组(键值对数组)中,ng-repeat 不能正常工作。怎么了?

function TestCtrl($scope) {
   $scope.list = [];

    $scope.processSomeData = function(){
        $scope.list["testKey"]={};
        $scope.list["testKey"]["test"]="Test value";
    };
    $scope.processSomeData();
}

<div ng-app>
  <h2>Test</h2>
  <div ng-controller="TestCtrl">
        <div ng-repeat="(key,value) in list">
          {{key}}
          {{value.test}}
      </div>
    </div>
</div>

http://jsfiddle.net/ebZkg/

谢谢!

【问题讨论】:

    标签: javascript arrays angularjs


    【解决方案1】:

    您的“关联数组”应该是 Javascript Object 而不是 Javascript 数组。您不能在 AngularJS 中将 js 数组用于键、值对/映射。

    将您的 list 更改为 Object 即可:

    $scope.list = {};
    

    【讨论】:

    • 顺便说一句,有没有办法按键排序?
    • 没有直接的方法,但有可能。您需要创建自己的排序函数,并且很可能复制数据。简单示例:jsfiddle.net/bmleite/ebZkg/1
    • 其实有,你可以直接用orderBy(其实我才意识到反正你说的是这个)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多