为什么angularjs ng-repeat工作不正常?

时间:2016-10-05 16:43:28

标签: javascript angularjs

我有一些代码,由于某种原因,我无法拆分:

<li class="task-list-item done">
<div class="task-icon">
    <a href="javascript:;">
        <i class="fa fa-database"></i>
    </a>
</div>
<div class="task-status">
    <a class="done" href="javascript:;">
        <i class="fa fa-check"></i>
    </a>
    <a class="pending" href="javascript:;">
        <i class="fa fa-close"></i>
    </a>
</div>
<div class="task-content">
    <h4 class="uppercase bold">
        <a href="javascript:;">Directive</a>
    </h4>
    <p>blagh {{unit.elements.journal.definition.directive}}</p>
</div>
</li>

渲染得很好

但是

<li ng-repeat="definition in unit.elements.journal.definition" class="task-list-item done">
    <div class="task-icon">
        <a href="javascript:;">
        <i class="fa fa-database"></i>
        </a>
    </div>
    <div class="task-status">
        <a class="done" href="javascript:;">
        <i class="fa fa-check"></i>
        </a>
        <a class="pending" href="javascript:;">
        <i class="fa fa-close"></i>
        </a>
    </div>
    <div class="task-content">
        <h4 class="uppercase bold">
        <a href="javascript:;">Directive</a>
        </h4>
        <p>blagh {{definition.directive}}</p>
    </div>
</li>

不起作用。

为什么我无法正确嵌套ng-repeat?我以前做过类似的事情,我没有任何问题,现在我甚至不知道如何正确调试。这对我来说毫无意义。

1 个答案:

答案 0 :(得分:2)

你确定unit.elements.journal.definition是一个数组吗?基于您的代码段似乎是一个对象,因为您正在调用它的属性unit.elements.journal.definition

试试这个并查看它是否正确渲染,如果它确实存在,那么你的数组肯定存在问题。

<li ng-repeat="definition in [{directive: 'test'}]" class="task-list-item done">
  <div class="task-icon">
    <a href="javascript:;">
    <i class="fa fa-database"></i>
    </a>
  </div>
  <div class="task-status">
    <a class="done" href="javascript:;">
    <i class="fa fa-check"></i>
    </a>
    <a class="pending" href="javascript:;">
    <i class="fa fa-close"></i>
    </a>
  </div>
  <div class="task-content">
    <h4 class="uppercase bold">
      <a href="javascript:;">Directive</a>
    </h4>
    <p>blagh {{definition.directive}}</p>
  </div>
</li>