angular.module('clientApp')
.factory('User', ['$resource', 'UserCard',
function ($resource, UserCard) {
var User = $resource(
"user/:id",
{id: "@id" },
{
'save': {method: 'PUT'},
'add': {method: 'POST'}
}
);
User.prototype.getCards = function (params, callback) {
UserCard.prototype.userId = this.id;
params.userId = this.id;
return UserCard.query(params, callback);
};
return User;
}])
.factory('UserCard', ['$resource',
function ($resource) {
return $resource(
"user/:userId/card/:id",
{userId: '@userId', id: "@id" },
{
'save': {method: 'PUT'},
'add': {method: 'POST'}
}
);
}])
.controller('TestCtrl', ['User',
function (User) {
// GET user/123
var user = User.get({id: 123}, function() {
// GET user/123/card/321
var card = user.getCard({id: 321}, function() {
card.someAttribute = 'Some value';
// PUT user/123/card/321
card.$save();
});
});
}])
;
檢查我的代碼。通過這種方式,我得到的卡片已經與用戶,卡片,$ save()或卡片相關聯。$ query()不需要傳遞userId,也不需要傳遞參數,也不需要卡片的屬性。
對角度知之甚少,我發現它有時候很有趣。在這裏,我們遇到的問題很容易解決在任何其他主流語言:) – mkoryak