2017-07-31 63 views
0

我有一个$ watch安装程序来监视服务(MenuFilter)中的值的数组(menuItems)。

$scope.filterMenuItems = MenuFilter.menuItems; 

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

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

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

回答

0

确保添加true作为深入观察或更好使用$watchCollection的第三个参数。

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

+0

我已经添加了'true',但并不能帮助我,尽管它看起来更经常触发。 如何在这种情况下使用$ watchCollection? – Nicholas

+0

菜单项如何被删除? –

+0

@尼古拉斯你是否真的像弦或布尔? – alphapilgrim