Angular ui.bootstrap分页 - 当前页面未更新/观看不起作用

hit*_*ani 10 angularjs angular-ui angularjs-directive

我有一个pagination内部dialog两个指令都是ui.bootstrap.问题是,$watch它不适用于currentPage成员.

现在,类似的代码非常适用于其他页面,其中分页不在某些对话框中.

我想这个问题与此问题有关,$scope但随后currentPage在范围内可用,我可以使用在模板上显示它{{currentPage}}

请在plunker中找到代码

$scope.$watch('currentPage') 没有点击页面链接.

现在,对于解决方法,我可以使用on-select-pagepagination指令提供的回调.

例如

<pagination on-select-page="pageChanged(page)" total-items="totalItems" items-per-page = "numPerPage" page="currentPage" max-size="maxSize"></pagination>
Run Code Online (Sandbox Code Playgroud)

在我的控制器内,我可以,

$scope.pageChanged = function(page) {
  console.log(page);    
};
Run Code Online (Sandbox Code Playgroud)

但我宁愿理解为什么在这种情况下$scope.$watch不会工作.

更新:从控制台跟随的是观察者值

$$watchers: Array[1] 
0th: Object
  eq: false
  exp: "currentPage"
  fn: function (o,n){}
Run Code Online (Sandbox Code Playgroud)

Max*_*Max 28

使用:

... page="$parent.currentPage" ...
Run Code Online (Sandbox Code Playgroud)

或适当的解决方案

当涉及嵌套作用域时,将您的vars绑定到更深层次,即:

$scope.data.currentPage = ...
Run Code Online (Sandbox Code Playgroud)

详情请点击

这里的例子

  • 首先,我感谢您为答案付出的努力.谢谢.虽然这有效.我有一个问题 - 如果范围错误,我怎么能使用`{{currentPage}}`在模板上显示currentPage.通过这个问题,我希望更好地理解$ scope.对于解决方案,我可以使用`on-select-page`属性. (2认同)