如果没有完全刷新,$ watch就不会触发

时间:2017-07-31 14:01:26

标签: angularjs watch

我有一个$ watch设置来监视服务(MenuFilter)中值的数组(menuItems)。

    $scope.filterMenuItems = MenuFilter.menuItems;

    $scope.$watch(function () {
        return MenuFilter.menuItems;
    }, function (newVal, oldVal) {

        if ( newVal !== oldVal ) {
            $scope.filterMenuItems = newVal;
        }
    });

在某个时刻,菜单项被删除,我希望手表更新列表但不是。它只在刷新页面时更新。

1 个答案:

答案 0 :(得分:0)

请务必添加true作为第三个参数,以便深入观察或更好地使用$watchCollection

问题是$watch仅使用引用比较,即它不监视数组中的项 - 只有数组引用本身(oldArray === newArray)。