我目前正在深入研究AngularJS层,我想知道如何(我知道有可能)合并我的两个工厂模块:
// one
services.factory('UserService', function ($resource) {
return $resource('rest/user/:action', {},
{
authenticate: {
method: 'POST',
params: {'action': 'authenticate'},
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
},
});
});
//two
services.factory('UserService', function ($resource) {
return $resource('rest/user/:id', {id: '@id'});
});
我试过这个:
services.factory('UserService', function ($resource) {
return {
authenticateUser: $resource('rest/user/:action', {},
{
authenticate: {
method: 'POST',
params: {'action': 'authenticate'},
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
},
}),
userID: $resource('rest/user/:id', {id: '@id'})
};
});
并带有函数变量。我正在为用户的所有操作使用一个RESTful Web服务。
提前致谢
答案 0 :(得分:0)
将它们更改为方法
services.factory('UserService', function ($resource) {
return {
authenticateUser: function() {
return $resource('rest/user/:action', {},
{
authenticate: {
method: 'POST',
params: {'action': 'authenticate'},
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
},
})
},
userID: function () {
return $resource('rest/user/:id', {id: '@id'})
}
};
});
并将其用作
// authenticate user
var UserAuth = UserService.authenticateUser();
UserAuth.authenticate({username: $scope.username, password: $scope.password});
// user id
var UserId = UserService.userID();
UserId.get({id: 123}, function (user) {
// code
});