同じインスタンス化されたオブジェクトを使用して、複数のエンドポイントに対してリソース呼び出しを行おうとしています。プロトタイプリソースメソッドを使用するメソッドはエンドポイントを変更しますが、@idは抽出に失敗します。idは確かにオブジェクトのプロパティです。通常のmodel。$getを実行すると、機能します。助けていただければ幸いです。コード内のコメントが説明に役立つことを願っています。
admin.controller('ModelController', ['$scope', 'Model', function($scope, Model) {
// first call to instantiate the models with the default resource url
Model.query(
{},
function(resp) {
$scope.models = resp.results;
}
);
// this event is emited from a directive
// data is a object from the models collection
$scope.$on('modelClick', function(event, data) {
// without this, event fires twice, i am not sure why.
event.stopPropagation();
// creates model with resource prototype
// the hope is then to be able to do $get or $save on $scope.model
$scope.model = new Model(data);
// call below will work normal, pulls the id out of the object
// and sends it with the request to the default url
$scope.model.$get();
// this method changes the resource url to the correct one
// but id=undefined is put on the query string
// i have debugged the resource api and when this gets called
// the object is being sent to the $parse method and the id is available
$scope.model.getInfo();
// updates the view
$scope.$apply('model');
});
}]);
admin.factory( 'Model', ['$resource', function($resource) {
// default resource url
var Model = $resource('/:url', {id: '@id', url: 'initial/path'}, {});
// method to call a different endpoint, but with same id from instantiated object
Model.prototype.getInfo = function(params, success, error) {
var response = this.$get(
{url: 'info/path'}
);
return response;
};
return Model;
}]);
$ scope.model.getInfo()が/ info / path?id = undefinedを呼び出す理由についてのヘルプは、大歓迎です。ありがとうございました。