Aam*_*hah 2 javascript angularjs firebase angularfire
我有一个情况,我必须把嵌套ng-repeat,当我试图得到的$id第一个ng-repeat我没有任何问题,但当我试图获得$id第二个ng-repeat(下图中标记为红色)我got undefined.
我的Firebase结构如下
HTML代码和控制器在这里
angular
.module('starter')
.controller('feedController', function($scope, $firebaseRef, $firebaseArray) {
$scope.allRequests = $firebaseArray($firebaseRef.requests);
$scope.allRequests.$loaded(function() {
console.log(arguments);
})
})Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<span ng-repeat="items in allRequests">
<!-- this works fine -->
{{items.$id}}
<div ng-repeat="item in items">
<!-- getting undefined here... -->
{{item.$id}}
</div>
</span>Run Code Online (Sandbox Code Playgroud)
我需要$id第二ng-repeat,任何帮助将不胜感激.
您可以使用(key, value)语法迭代您的项目:
<div ng-repeat="(id, item) in items">
{{id}}
{{item.userName}}
</div>
Run Code Online (Sandbox Code Playgroud)
会发生的是,$id并且$priority由您发出请求的节点上的angularfire注入.它不会在此节点的所有子节点中注入它,因此您的各个项目没有$id属性.
当你打电话ng-repeat="item in items",因为items是一个对象,角度会遍历你的对象的属性,并默默地忽略的那些开始$,因为这个前缀通常是由角内部使用.这是angularfire利用的副作用(否则,在你的item in items循环中,你会迭代$id和$priority).在(key, value) in object语法,您可以访问你的子对象的关键.
| 归档时间: |
|
| 查看次数: |
495 次 |
| 最近记录: |