2017-08-08 16 views
0
app.controller("ListController", ['$scope', function($scope) { 
$scope.personalDetails = [ 
        { 
         'fname':'Muhammed', 
         'lname':'Shanid', 
         'email':'[email protected]', 
         'method':'66666', 
         'date':'08/08/20117', 
         //'specieSelected':'ALLIGATOR JUNIPER' 
         'specieSelected':{ 
              'originalObject': {'code':'','name':'ACACIA SPECIES'}, 
              'title':'ALLIGATOR JUNIPER' 

              } 

        }, 

私は複雑な変数とマルチフィールドを持っています。 個人的な詳細を見ることで、すべてのユーザー入力に対してコンソールログが起動することはありません。たとえば、ユーザーがfnameを変更すると、ログに記録します。しかしそれはしません。角度ログは任意の変更のユーザー入力を監視します

$scope.$watch('personalDetails', function() { 
          console.log($scope.personalDetails); 



         }); 
+1

ディープウォッチに変更してください。 [this](https://stackoverflow.com/questions/14712089/how-to-deep-watch-an-array-in-angularjs)の記事をご覧ください。 – Mickers

答えて

1

deep watch level

angular.module('MY_APP', []).controller('MyCtrl', MyCtrl) 
    function MyCtrl($scope,$timeout) { 
    $scope.users = [{"name": "vinoth"},{"name":"yusuf"},{"name":"rajini"}]; 

    $scope.$watch("users", function() { 
     console.log("**** reference checkers $watch ****") 
    }); 

    $scope.$watchCollection("users", function() { 
    console.log("**** Collection checkers $watchCollection ****") 
    }); 

    $scope.$watch("users", function() { 
     console.log("**** equality checkers with $watch(true) ****") 
    }, true); 

$timeout(function(){ 
    console.log("Triggers All ") 
    $scope.users = []; 
    $scope.$digest(); 

    console.log("Triggers $watchCollection and $watch(true)") 
    $scope.users.push({ name: 'Thalaivar'}); 
    $scope.$digest(); 

    console.log("Triggers $watch(true)") 
    $scope.users[0].name = 'Superstar'; 
    $scope.$digest(); 
    }); 
} 

あなたは、すべてのユーザー入力を見たり、コンソールログにしたい場合は、 あなたが平等を使うべきでは3位trueパラメータを持っている、時計。

$scope.$watch('personalDetails', function() { 
          console.log($scope.personalDetails); 

          }, true); 
関連する問題