【发布时间】:2017-10-04 05:27:48
【问题描述】:
我以前也这样做过,但这次不知道出了什么问题。
一项服务:
angular.module('module')
.service("BaseService", function() {
var vm = this;
var testValue = {a:1,b:2};
vm.getTestValue = function(){
return testValue;
}
});
控制器中的方法:
vm.getTest = function(){
console.log(BaseService.testValue) // undefined - cool
console.log(BaseService.getTestValue()) //{a: 1, b: 2} - cool
var value = BaseService.getTestValue();
console.log(value) // {a: 1, b: 2} - cool
value.a = 20; // updated local object
console.log(value) // {a: 20, b: 2} -cool
console.log(BaseService.getTestValue())-- {a: 20, b: 2} -- ??? why
}
希望我的问题很清楚,为什么局部变量会在服务中更新,如果它的行为是这样的..在服务/工厂中获取设置功能的正确方法是什么....对功能进行原型设计会更好吗?在 vm 中附加函数。
【问题讨论】:
标签: javascript angularjs angular-services angular-factory