【问题标题】:ng-repeat over array of objects vs. object containing objectsng-repeat 对象数组与包含对象的对象
【发布时间】:2015-01-03 08:54:26
【问题描述】:

在我见过的几乎所有 ng-repeat 示例中,数据的结构如下:

$scope.dataCollected = [{name: bob, data: '10-12-12'}, {name:joe, data: '09-13-13'}];

但是,我可以让 ng-repeat 工作的唯一方法是,如果我像这样构造数据:

$scope.dataCollected = {bob: {name: bob, data: '10-12-12'}, joe: {name:joe, data: '09-13-13'}};

将其构建为数组会导致 ng-repeat 完全不执行任何操作。它甚至没有给出错误。将其构建为包含对象的对象是可行的,但我想使用数组,因为我知道这是在 ng-repeat 上使用过滤器的唯一方法。

我这样调用 ng-repeat:

<div class="list-row" ng-repeat="data in dataCollected">
  <h3 class="name"> {{data.name}} </h3>
</div>

我错过了什么?

【问题讨论】:

  • 检查您的控制台。您的对​​象中可能存在语法错误。 Plnkr
  • @maskedjellybean 那是因为我固定在我的 plnkr 中。检查 plnkr 两者都有效。即{name: bob, 将抛出错误,除非你有一个名为bob 的变量。如果您认为数组语法不起作用,请向我们展示一个演示该问题的演示。
  • @PSL 是的,想取消删除我的答案来写它 - 抱歉,我完全跳过了 OP 实际显示数组的那一行,所以我认为他想要一种快速过滤它的方法。跨度>
  • @Shomz 坦率地说。我真的不知道 OP 有什么问题......我什至放了一个 plnk 来显示它除了语法错误之外是有效的。我已经投票结束这个问题
  • @PSL 你修好了,我想这就是它的全部,我们应该关闭它。

标签: angularjs angularjs-ng-repeat


【解决方案1】:

对不起各位,谢谢你们的帮助。问题在于,为了使我的数据更易于阅读,我使用括号表示法为数组的键分配了名称,如下面的答案所示:stackoverflow.com/questions/12244483/... ng-repeat 根本不喜欢这样。看来默认键是必要的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-12
    • 1970-01-01
    • 2019-03-12
    • 2016-03-28
    相关资源
    最近更新 更多