javascript - angularjs service中的factory 数据改变问题
PHPz
PHPz 2017-04-10 14:54:17
0
3
405
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()获取的数据就变化了 这个是为什么,想明白里面的原理。有人回答就万分感谢了

PHPz
PHPz

学习是最好的投资!

reply all(3)
巴扎黑

核心的问题在于在angular中,service被设计用来在controller中复用和共享的,也就是说,service只会有一个实例,与此对应的是controller会在切换view之后销毁,再次进来时,会重新创建。

小葫芦

js里对象赋值都是引用。如果想避免这种情况,请调用时clone一个对象

阿神
app.factory('Test', function () {
    //var jsonObj = {name:"3"};
    return {
        myMenu : function(){
            return {name:"3"};
        }
    }
}
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template