ユーザーオブジェクトを返すREST APIがあり、その役割は別のオブジェクトへのリンクを介して指定されます。JSONlocalhost/project/api/users/27/
オブジェクトは次のとおりです。
{
"id": 42,
"name": "John",
"prijmeni": "Doe",
"login": "johndoe",
"nickname": null,
"grade": 1.3,
"roles": {
"href": "http://localhost/project/api/users/1716/roles/"
}
}
私がやろうとしているのは、コントローラーで役割を取得することです。私のユーザーサービスは次のようになります。
projectServices.factory('User', ['$resource', 'UserRoles',
function($resource, UserRoles, Role) {
var User = $resource('http://localhost/project/api/users/:id', {}, {
'query': {
method: 'GET',
isArray: true
}
});
return User;
}
]);
そして、(そのリソースコードブロックに)追加しようとしました:
User.prototype.roles= function(){
return UserRoles.get({id:42});
};
これは、ngRepeat で呼び出されたときにブラウザをフリーズします。だから私は試しました
User.prototype.roles = UserRoles.get({id:42});
これは機能します。それから私は試しました
User.prototype.roles = $resource(this.roles.href, {}, {
'get': {
method: 'GET',
isArray: true
}
});
それroles
は未定義です。transformResponse
また、ユーザー サービスGET
アクションにparamを追加しようとしましたが、その関数は呼び出されませんでした。
2 番目のオプションは問題なく機能しますが、ユーザー ID をハードコーディングする必要があります。適切な解決策は、どうにかしてユーザー ID を取得することです (試してみましthis.id
たが、うまくいきませんでした)。
完璧な解決策は、指定された からリソースを作成することですが、プロトタイプでhref
はアクセスできないためroles
、方法がわかりません。
アドバイスをありがとう。