AngularJs ngRepeat在更改变量时不更新

时间:2016-06-10 14:54:46

标签: html angularjs angularjs-ng-repeat

<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。如果可能的话,我想避免使用控制器。

1 个答案:

答案 0 :(得分:0)

我认为ng-repeat指令会在其下为其子项创建另一个范围。那么你就<div>元素中引用的同一个父母交谈。因此,在您的<a>标记中,您可能需要与父母的父作用域进行对话。

因此,在$parent.$parent内的锚标记中尝试$parent而非ng-repeat

当然这样做会让AngularJS众神流下眼泪,所以我建议创建一个控制器调用ng-click中的一个方法,该方法将传播到当前的控制器模板。然后,您可以将所有逻辑移出模板之外。