2017-07-31 8 views
0

サービス(MenuFilter)の値の配列(menuItems)を監視するための$ watchセットアップがあります。

$scope.filterMenuItems = MenuFilter.menuItems; 

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

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

メニュー項目が削除され、時計によってリストが更新される予定ですが、そうではありません。ページを更新すると更新されます。

答えて

0

$watchCollectionをよく見るためには、trueを3番目のパラメータとして追加してください。

問題が$watchは参考比較を使用することであり、すなわちそれはあなたのアレイ内の項目を監視しません - だけ配列参照自体(oldArray === newArray)。

+0

私はすでに 'true'を追加していますが、もっと慣れているように見えますが、私を助けません。 この場合、$ watchCollectionの使い方は? – Nicholas

+0

メニュー項目はどのように削除されますか? –

+0

@Nicholasあなたは文字列かboolとして真実を渡していますか? – alphapilgrim

関連する問題