$watch 在没有完全刷新的情况下不会触发
$watch is not trigger without a complete refresh
我有一个 $watch 设置来监视服务 (MenuFilter) 中值的数组 (menuItems)。
$scope.filterMenuItems = MenuFilter.menuItems;
$scope.$watch(function () {
return MenuFilter.menuItems;
}, function (newVal, oldVal) {
if ( newVal !== oldVal ) {
$scope.filterMenuItems = newVal;
}
});
在某个时刻删除了一个菜单项,我希望手表会更新列表,但事实并非如此。只有在我刷新页面时才会更新。
确保添加 true
作为第三个参数以进行深度观察或更好地使用 $watchCollection
。
问题是 $watch
仅使用引用比较,即它不监控 内部 数组的项目 - 仅监控数组引用本身(oldArray === newArray
).
我有一个 $watch 设置来监视服务 (MenuFilter) 中值的数组 (menuItems)。
$scope.filterMenuItems = MenuFilter.menuItems;
$scope.$watch(function () {
return MenuFilter.menuItems;
}, function (newVal, oldVal) {
if ( newVal !== oldVal ) {
$scope.filterMenuItems = newVal;
}
});
在某个时刻删除了一个菜单项,我希望手表会更新列表,但事实并非如此。只有在我刷新页面时才会更新。
确保添加 true
作为第三个参数以进行深度观察或更好地使用 $watchCollection
。
问题是 $watch
仅使用引用比较,即它不监控 内部 数组的项目 - 仅监控数组引用本身(oldArray === newArray
).