gpt4 book ai didi

javascript - angularFire 从嵌套对象中获取 $id

转载 作者:行者123 更新时间:2023-12-03 11:19:08 25 4
gpt4 key购买 nike

我有一种情况,我必须嵌套 ng-repeat ,当我试图获得 $id第一个ng-repeat我得到它没有任何问题,但是当我试图得到 $id第二个ng-repeat (下图红色标记)i got undefined .

我的 Firebase结构如下

enter image description here

这里是 items目的 items object

HTML 代码和 Controller 在这里

angular
.module('starter')
.controller('feedController', function($scope, $firebaseRef, $firebaseArray) {

$scope.allRequests = $firebaseArray($firebaseRef.requests);

$scope.allRequests.$loaded(function() {
console.log(arguments);
})

})
<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>

我需要$id第二个ng-repeat ,我们将不胜感激。

最佳答案

您可以使用 (key, value) 语法来迭代您的项目:

<div ng-repeat="(id, item) in items">
{{id}}
{{item.userName}}
</div>

发生的事情是 $id$priority 被 angularfire 注入(inject)到您发出请求的节点上。它不会将它注入(inject)该节点的所有子节点,因此您的各个项目没有 $id 属性。

当您调用 ng-repeat="item in items" 时,因为 items 是一个对象,angular 将遍历对象的属性,并默默地忽略开始的那些用$,因为angular内部经常使用这个前缀。这是 angularfire 利用的副作用(否则,在您的 item in items 循环中,您将遍历 $id$priority). (key, value) in object 语法使您可以访问子对象的键。

关于javascript - angularFire 从嵌套对象中获取 $id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36624793/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com