javascript - angularjs - ng-repeat 不会迭代 hashmap

标签 javascript angularjs angularjs-ng-repeat

我正在尝试像这样迭代 HashMap :

index.html

<div ng-app>
  <div ng-controller="ClickToEditCtrl">
        <p>Your Data:</p>
        <ul ng-repeat="(name, person) in data">
              name: {{name}}
            --------------------------
                age: {{person.age}}
                hair: {person.hair}}

        </ul>
    </div>
</div>

在我的 ClickToEditCtrl.js

function ClickToEditCtrl($scope) {
    $scope.data =[];
    $scope.data["Mike"] = new person (11,"blonde");
    $scope.data["Dan"] = new person (22, "redhead");
}

function person(age, hair){
  this.age = age;
  this.hair = hair;
}

这不起作用..

我得到的是空列表。

我做错了什么?

谢谢!

最佳答案

您正在初始化新数组而不是对象。
它应该是 $scope.data = {}; 而不是 $scope.data =[];

并且你最好将 ng-repeat 放在 li 上,而不是 ul

<ul>
  <li ng-repeat="(name, person) in data">

    name: {{name}}
    --------------------------
    age: {{person.age}}
    hair: {{person.hair}}
  </li>
</ul>

关于javascript - angularjs - ng-repeat 不会迭代 hashmap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40760345/

相关文章:

javascript - charAt 返回为未定义

javascript - Fabricjs:显示横幅预览

angularjs - 提高嵌套 ng-repeat + 指令的性能

javascript - 在 angularjs(2k 行)中加载大量数据后浏览器被卡住

javascript - AngularJS 自定义 order by with 函数

javascript - 在 Javascript 中查找坏点的算法

javascript - JQuery 函数未捕获引用错误

javascript - 在 HTML 表单中隐藏或填充依赖的 <select>?

angularjs - UI Bootstrap 下拉菜单在 Firefox 中无法使用/Text Angular ...

javascript - 无法使用 jQuery 选择元素