三元在角度表达式中不能正常工作

时间:2014-10-21 09:55:08

标签: javascript angularjs angularjs-ng-repeat

如果我使用的话,我必须在ng-repeat上调用$ last函数,

   div(ng-repeat="note in notes")
    li: {{note}}
    {{$last ? 'true' : 'false' }}

它仅在最后一个li元素上打印false,但是如果我调用一个函数而不是' true',就像下面那样

   div(ng-repeat="note in notes")
    li: {{note}}
    {{$last ? update() : 'false' }}

为每个循环调用该函数。

为了您的信息,我曾尝试过"&&"这个link

中给出的解决方案
{{$last && update() || '' }}

也是,但没有工作。

2 个答案:

答案 0 :(得分:1)

你没有做任何明显的错误,所以可能错误在你的代码中的其他地方。请参阅以下内容:

app.controller('MyCtrl', function ($scope) {
  $scope.notes = ['Note 1','Note 2'];
  $scope.update = function () {
    return 'i haz updated!1';
  };
});

<div ng-controller="MyCtrl">
  <ul ng-repeat="note in notes">
    <li>
      {{note}} - isLast:{{$last ? 'true' : 'false'}} - {{$last ? update() : '???'}}
    </li>
  </ul>
</div>

imgur

<小时/> Plunker http://plnkr.co/edit/DwCpcC

答案 1 :(得分:1)

请查看demo

<ul>
    <li data-ng-repeat="note in notes">
       {{ note }}
       {{ $last ? update():''}}
     </li>
</ul>