2016-12-25 4 views
1

私はブール値の配列を持っていますが、何かする必要があるのは、配列に何らかの変更があったときにメッセージを表示するために$ watch関数を使用しようとすることです。

このcodeからわかるように、配列は値を変更しますが、$ watch関数は機能しません。何か案が?

ビュー

<div data-ng-repeat="catA in categoryA"> 
    <b><input type="checkbox" checked="checked" ng-model="arrayCategoryA[$index]"/>{{catA.name}}</b> 
</div> 

コントローラ

app.controller("controllerApp", function($scope, $http, $filter){ 

    $scope.arrayCategoryA = []; 

    $scope.$watchCollection($scope.arrayCategoryA, function(newVal, oldVal){ 
    console.log("something changed"); 
    }, true); 

    $http.get("categoryA.json").success(function(data) { 
    $scope.categoryA = data; 
    for (var i = 0; i < $scope.categoryA.length; i++) 
    $scope.arrayCategoryA[i] = true; 
    }); 

}); 

答えて

1

$watchCollectionは、ウォッチ式をとり、この場合にはarrayCategoryAのスコープ変数の名前です。

$scope.$watchCollection(`arrayCategoryA`, function(newVal, oldVal){ 
    console.log("something changed"); 
    }, true); 

Updated working plunkr

+0

感謝の男が、私は$の時計機能と複数の式を持つ別の小さな問題があります。してください、この更新されたコードを参照してくださいhttp://plnkr.co/edit/Wj3ICWeY17E2q0SlXk5z?p=preview – wilson

関連する問題