你好以下的朋友是我的阵容。
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”上观看。
请帮助
谢谢
答案 0 :(得分:2)
$watch
"simpleData.key"
$scope.simpleData.key === undefined
无效,因为true
。
如果您正在尝试深入观察数组,可以将$watch
作为第三个参数添加到$watch("simpleData", function(){...}, true);
,这需要进行深入观察,但这会带来很大的性能损失。每个$ digest周期都必须对你的数组进行深度比较。
{{1}}