我的服务器可以将更改发送到我的应用程序的状态。当我的应用收到这样的更改时,会调用以下函数:(注意,在实际应用代码中,此函数不在全局范围内)
function(message){
data = window.JSON.parse(message.data);
console.log(data);
for(element in data){
if(element[0] == "_"){continue;}
$scope.state[element] = data[element];
}
}
我还尝试通过克隆状态对象来做到这一点,然后在完成操作后将其附加到范围内。
克隆函数如下所示:
var clone = (function(){
return function (obj) { Clone.prototype=obj; return new Clone() };
function Clone(){}
}());
我接收数据的函数现在看起来像这样。
function(message){
data = window.JSON.parse(message.data);
console.log(data);
var cloned = new clone($scope.state);
for(element in data){
if(element[0] == "_"){continue;}
cloned[element] = data[element];
}
$scope.state = cloned;
}
我的控制器中只有一个元素来测试这个:
<div ng-controller='MainController'>
{{ state | json}}
</di>
它只是没有更新。
是否有其他方法可以添加/更改您事先不知道名称的属性,以便绑定继续工作?