<div ng-repeat="item in items | limitTo:$parent.limit=($parent.limit||5)">
...
<a ng-if="$last" ng-bind="$parent.limit===Infinity ? 'Read Less':'Read More'" ng-click="$parent.limit=$parent.limit===Infinity?5:Infinity"></a>
</div>
因此,初始限制只有5个项目,单击该链接会更改Read more / Read less之间的文本。但是ngRepeat没有接受更改并添加/删除项目。我想在更改$parent.limit
变量时更新ngRepeat。如果可能的话,我想避免使用控制器。
答案 0 :(得分:0)
我认为ng-repeat
指令会在其下为其子项创建另一个范围。那么你就不与<div>
元素中引用的同一个父母交谈。因此,在您的<a>
标记中,您可能需要与父母的父作用域进行对话。
因此,在$parent.$parent
内的锚标记中尝试$parent
而非ng-repeat
。
当然这样做会让AngularJS众神流下眼泪,所以我建议创建一个控制器或调用ng-click
中的一个方法,该方法将传播到当前的控制器模板。然后,您可以将所有逻辑移出模板之外。