我有以下分页代码
<pre>There are {{total_records}} number of records</pre>
<pagination ng-model="current_page"
total-items="total_records"
items-per-page="items_per_page"
max-size="max_size" class="pagination-sm"
boundary-links="true" rotate="false"
num-pages="numPages" ng-change="pageChanged()">
</pagination>
当我通过单击DOM更改分页时,它可以正常工作。但是当我尝试通过在代码中设置$ scope.current_page来改变分页时,它不会触发pageChanged。
例如,
在DOM上,我们说我在第3页($ scope.current_page是3)并且在DOM第3页上是活动的。 如果我通过点击DOM转到第4页,那么在DOM第4页上活动,$ scope.current变为4,并触发pageChagned。
但是
在DOM上,我们说我在第3页($ scope.current_page是3)并且在DOM第3页上是活动的。 如果我通过在代码中将$ scope.current_page更改为4来转到第4页,那么在DOM页面上将更改更改为4但是pageChanged不会被触发。
如何在代码中更改$ scope.current_page时触发pageChanged?当他们建议使用$ scope时,我看到了另一个解决方案。$ watch但我想知道更好的做法。
编辑:
我创建了以下plnkr(我第一次使用它,所以不确定我是否做得正确)。 http://plnkr.co/edit/Kldv7ZbexpgifiPIsjCT?p=preview
您可以看到的问题是,当您点击&#34;转到第3页&#34;按钮&#34;页码&#34;不会更改<pre></pre>
代码。
由于
答案 0 :(得分:2)
ng-change不是由代码更改触发的。您可以通过在控制器中使用$ scope。$ watch来获得所需的效果:
$scope.$watch(function() {
return $scope.current_page;
}, function() {
$scope.number_of_change++;
});
(老实说,这是Angular - ng-change not firing when ng-model is changed的副本,其中有一个more thorough answer,但我没有足够的声誉来标记这个问题。)