我有一个变量我实例化为
$scope.invites = { 'userID': null, 'users': [], 'errorMsg': null, 'pending': [] };
在API请求中,我将$scope.invites.pending
设置为对象数组,例如:
[{ userID: 1, username: 'RhoVisions'}]
当我在li中使用ng-repeat时
<li ng-repeat="invite in invites.pending | orderBy: 'username'">
我一无所获。检查显示没有任何东西被渲染。如果我将变量从$scope.invites.pending
更改为$scope.invitesPending
,它的工作正常,我似乎无法弄清楚问题。
起初,我想也许是因为数据进入的方式,所以我尝试循环返回数据并将其推送到$scope.invites.pending
,运气好。我也尝试在朋友的要求下添加track by $index
,但这也没有用。
我尝试创建一个plnkr,但它与plnkr一起工作正常。我必须想象它与我的代码有关,或者数据是如何从API中传入的,但我不知道该怎么做。我可以将它改为基本变量,但为了组织和学习,我想知道发生了什么。
因为它需要API,所以我无法设置有效的plnkr,但我已经将相关的输出HTML以及运行该页面的完整JS文件放在了一起。据我所知,只有与邀请相关的内容才具有相关性。
https://github.com/Kapeli/Dash-User-Contributions/tree/master/docsets
答案 0 :(得分:0)
userId
,users
,errorMsg
和pending
不应该用单引号括起来 - 它们应该用双引号括起来。用户名也应如此。请尝试对您的对象数组进行硬编码,以查看ng-repeat是否有效。 e.g。
$scope.invites = {
userID: null,
users: [],
errorMsg: null,
pending: [
{ userID: 1, username: "RhoVisions"},
{ userID: 2, username: "AhotherUser"}
]
};
如果仍然无法正常工作,请检查您的$ http承诺是否已解决?例如在.then(function() { alert('hello') })
中确保已成功解决。
我为你创建了一个plnkr,表明它有效...... http://plnkr.co/edit/9RvTgJbMZGuOFiosrMfT?p=preview
答案 1 :(得分:0)
我是一个白痴,忘记了我在邀请部分添加了一个新的指令,显然它没有像它应该的那样工作。它不是仅仅将数据写入传递变量(invites.user),而是覆盖整个变量。