Angular js $监视多维数组?

时间:2014-11-08 19:07:35

标签: javascript angularjs multidimensional-array

你好以下的朋友是我的阵容。

data.php文件

$array = array(
   '0' => array(
            'id' = 1,
            'name' = 'test',
            'key' = array(
                       '0' = 'key1',
                       '1' = 'key2',
                       '2' = 'key3'
                    )
         ),
   '1' => array(
            'id' = 3,
            'name' = 'test3',
            'key' = array(
                       '0' = 'key7',
                       '1' = 'key8',
                       '2' = 'key9'
                    )
         ),
     '2' => array(
            'id' = 15,
            'name' = 'test30',
            'key' = array(
                       '0' = 'key4',
                       '1' = 'key5',
                       '2' = 'key6'
                    )
         )
);
echo json_encode($array);
下面是我的js代码。

$http({method: 'GET', url: $rootScope.serverURL+'data.php'}).
  success(function (data, status, headers, config) {
      $rootScope.simpleData = data;
  }).
  error(function (data, status, headers, config) {

  });

$scope.$watch('page + numPage + simpleData', function() {
    console.log('working');    
},true);

现在工作正常,我想在“密钥”上设置需求。

$scope.$watch('page + numPage + simpleData.key', function() {
    console.log('not working');    
},true);

当我编写这样的代码时,这段代码无法正常工作。

$scope.$watch('page + numPage + simpleData[0].key', function() {
    console.log('working');    
},true);

当我写js喜欢它工作正常。角js在键上观看,但仅用于“0”元素。 在阵列中,我有很多元素,我如何在所有元素“Key”上观看。

请帮助

谢谢

1 个答案:

答案 0 :(得分:2)

$watch "simpleData.key" $scope.simpleData.key === undefined无效,因为true

如果您正在尝试深入观察数组,可以将$watch作为第三个参数添加到$watch("simpleData", function(){...}, true); ,这需要进行深入观察,但这会带来很大的性能损失。每个$ digest周期都必须对你的数组进行深度比较。

{{1}}