我有一个数组,基本上是另一个数组的子集:
$scope.theFew = $scope.theMany.filter(function(obj, index, array) {
return obj.IsVerySpecial;
});
在我的控制器的其他地方,我有一些函数作用于theMany
数组,改变了IsVerySpecial
属性。
当$scope.theFew
中的对象的属性发生变化时,我希望$scope.theMany
更新,但事实并非如此。发生了什么事?
答案 0 :(得分:0)
对此进行了快速发现,但确实有效。公平地说,这是一些较旧的代码;)
代码应改为:
$scope.theFew = function() {
return $scope.theMany.filter(function(obj, index, array) {
return obj.IsVerySpecial;
});
}
答案 1 :(得分:0)
我也有类似的问题。我用$ watch来更新范围变量。不确定这是否是最佳方式。
controller: ['$scope', function($scope) {
updateVisualData();
$scope.$watch("data", function(newData) {
console.log("new Data in paContent");
console.log(newData);
updateVisualData();
}, true);
function updateVisualData() {
var contentData = $scope.data.components && $scope.data.components.filter(function(item) {
return item.type === "Layout";
});
if (contentData && contentData.length > 0) {
contentData = contentData[0];
$scope.graphType = contentData.graph.type;
$scope.graphData = contentData.graph.graphData;
-----
}
}
}]