我想它是一個很新手的問題,但我不能自己弄清楚。 我正在努力創建一個角度服務,這將允許我初始化一個對象初始值,然後其他控制器將能夠使用此實例。 目前,吸氣劑/設定器不工作。另外,在創建對象之前調用controller2。用新的實例聲明Angular服務
我該如何以適當的方式編寫此服務?
頁(基峯)控制器:
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;
}
};
}
})();
看起來getUserInfo在創建對象(createNewUser)之前被調用。我如何控制這個? – badigard
最好是有vm.user = userService.createNewUser(data); ///以一個angular.run模塊中的數據初始化。角度;運行只會在任何控制器之前執行一次。 – Walfrat
會檢查這一點。謝謝 – badigard