在AngularJS 1中,ng-repeat指令是用于循环渲染一个数组或对象的元素列表。当使用一个函数作为ng-repeat的数据源时,如果底层模型发生变化,ng-repeat指令不会自动更新。
解决这个问题的一种方法是使用$scope.$watch()函数来监视底层模型的变化,并在变化时手动更新ng-repeat的数据源。下面是一个示例代码:
- {{ item }}
在上面的示例中,我们使用了$scope.$watch
函数来监视items
数组的变化。当items
数组发生变化时,$watch
函数会触发回调函数,我们在回调函数中重新定义getItems
函数,以便ng-repeat指令能够获取最新的数据源。
当点击"Add Item"按钮时,addItem
函数会添加一个新的项到items
数组中,然后$watch
函数会监测到items
数组的变化并更新getItems
函数,从而使ng-repeat指令可以获取到最新的数据源。
这样,当底层模型发生变化时,ng-repeat指令会自动更新并渲染新的数据。