javascript - angularjs service中的factory 数据改变问题
PHPz
PHPz 2017-04-10 14:54:17
[JavaScript讨论组]
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

学习是最好的投资!

全部回复(3)
巴扎黑

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

高洛峰

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

阿神
app.factory('Test', function () {
    //var jsonObj = {name:"3"};
    return {
        myMenu : function(){
            return {name:"3"};
        }
    }
}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号