javascript
.factory('Test', function () {
var jsonObj = {name:"3"};
return {
myMenu : function(){
return jsonObj;
}
}
}
我在service中写了这个每一个服务
在controller中
我通过注入后使用 $scope.a = Test.myMenu(); $scope.a.name = 4;
这个时候我通过Test.myMenu()获取的数据就变化了 这个是为什么,想明白里面的原理。有人回答就万分感谢了
核心的问题在于在angular中,service被设计用来在controller中复用和共享的,也就是说,service只会有一个实例,与此对应的是controller会在切换view之后销毁,再次进来时,会重新创建。
js里对象赋值都是引用。如果想避免这种情况,请调用时clone一个对象