2017-07-31 45 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