我试过以下
startIndex = 0;
lengthIndex = 5;
<span aria-hidden="true" class="glyphicon glyphicon-chevron-left" ng-click="startIndex = startIndex-1"></span>
<ul>
<li ng-repeat="week in mydata | limitTo:lengthIndex:startIndex">
</ul>
<span aria-hidden="true" class="glyphicon glyphicon-chevron-left" ng-click="startIndex = startIndex-1"></span>
当范围值发生变化时,我希望显示下一组数据。但是当刷新页面时,它会正确显示数据,即数据切片。但是点击范围值正在变化,但数据不会改变。我该如何解决这个问题。
答案 0 :(得分:0)
ng-repeat
创建一个新范围因此,当您尝试访问startIndex
时,它将访问子范围并仅更新子范围中的值。更改{的父范围中的值{1}}使用ng-repeat
,如下所示
$parent.startIndex
或使<li ng-repeat="week in mydata | limitTo:lengthIndex:startIndex">
<span aria-hidden="true" class="glyphicon glyphicon-chevron-left" ng-click="$parent.startIndex = $parent.startIndex-1"></span>
成为一个对象,以确保访问和更新父属性。
startIndex
Here是根据您更新的代码
的工作示例答案 1 :(得分:0)
当您使用ng-repeat时,角度摘要过程会一直持续到循环结束。 因此它将从范围中断开指向索引的链接,并在刷新后反映,因为它在那时提供了新的范围。
这只是一个带有$ scope的传统异步函数。$ apply()在最后调用,告诉AngularJS刚刚发生异步事件。
因此,当您需要更改范围变量时,必须使用$ scope。$ apply()。