ng-repeat不循环遍历子对象

时间:2015-10-07 18:20:49

标签: angularjs loops ng-repeat

我有一个变量我实例化为

$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

2 个答案:

答案 0 :(得分:0)

  1. 我认为您的json无效 - userIduserserrorMsgpending不应该用单引号括起来 - 它们应该用双引号括起来。用户名也应如此。
  2. 请尝试对您的对象数组进行硬编码,以查看ng-repeat是否有效。 e.g。

    $scope.invites = { userID: null, users: [], errorMsg: null, pending: [ { userID: 1, username: "RhoVisions"}, { userID: 2, username: "AhotherUser"} ] };

  3. 如果仍然无法正常工作,请检查您的$ http承诺是否已解决?例如在.then(function() { alert('hello') })中确保已成功解决。

  4. 使用从API返回的实际有效负载更新您的问题。
  5. 您能告诉我们您的完整代码吗?因为您提供给我们的信息量有点难以调试。也许是你的Plnkr链接?
  6. 我为你创建了一个plnkr,表明它有效...... http://plnkr.co/edit/9RvTgJbMZGuOFiosrMfT?p=preview

答案 1 :(得分:0)

我是一个白痴,忘记了我在邀请部分添加了一个新的指令,显然它没有像它应该的那样工作。它不是仅仅将数据写入传递变量(invites.user),而是覆盖整个变量。