2014-11-08 54 views
0

下面你好朋友是我的数组。

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”元素。 在数组中我有很多的元素,我怎么能看到所有元素“关键”。

请帮助

谢谢

+0

显然,它不会与'simpleData.key'一起工作 - 没有这样的事情。 – 2014-11-08 19:15:30

+0

@NewDev我现在编辑我的问题检查。 – 2014-11-08 19:19:13

+0

你的例子中'simpleData'究竟是什么? – 2014-11-08 19:22:12

回答

2

$watch荷兰国际集团​​没有因为$scope.simpleData.key === undefined工作。

如果您想深入观察阵列,可以将true作为第三个参数添加到$watch,该功能可以深入观察,但这对性能造成很大影响。每个消化周期都需要深入比较你的数组。

$watch("simpleData", function(){...}, true); 
+0

嘿亲爱的谢谢你的回答,这是工作,但不是与多个关键字一样工作。 $ watch(“page + numPage + simpleData”,function(){...},true);当我写这不工作,请帮助。非常感谢你 – 2014-11-08 19:33:56

+0

你的回答是正确的,但$ watch(“page + numPage + simpleData”,function(){...},true);这是行不通的。我传递第三个参数为true,但不工作。 – 2014-11-08 19:36:38

+0

你为什么认为这会起作用?要观看多个表达式,使用'$ watchGroup([“page”,“numPage”],function(){...})',但保留'simpleData',因为'$ watchGroup'没有做深-看。 – 2014-11-08 19:38:38