在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指令会自动更新并渲染新的数据。