我想这是一个非常新手的问题,但我自己无法弄明白 . 我正在努力创建一个角度服务,这将允许我使用初始值启动一次对象,然后其他控制器将能够使用此实例 . 目前,getter / setter无法正常工作 . 另外,在创建对象之前调用controller2 .
我应该如何以正确的方式编写此服务?
页面(基础)控制器:
vm.user = userService.createNewUser(data); /// init with data
子页面控制器1:
vm.user.userInfo = userService.getUserInfo(); /// getter
子页面控制器2:
userService.setUserInfo(data); /// setter
服务:
(function () {
'use strict';
angular
.module('app.user')
.factory('userService', userService);
function userService() {
return {
createNewUser: function (data) { /// init only once
return new User(data);
},
getUserInfo: function () {
return User.getUserInfo();
},
setUserInfo: function (customer) {
return User.setUserInfo(customer);
}
};
function User(data) { /// ctor
this.XXXX = {
user_code: data.customer.user_code,
user_password: data.customer.user_password
};
this.YYYY = {
//// some vars
}
User.prototype = {
getXXXXUserInfo: function () {
return this.XXXX;
},
setXXXXUserInfo: function (customer) {
this.XXXX.user_code = customer.user_code;
this.XXXX.user_password = customer.user_password;
}
};
}
})();
2 回答
问题是你
return
是User
的一个实例 . 您需要先在服务中保存用户实例,然后将其返回 .