angulars リソースと angular 1.2の PR の時点で、angular は成功/エラー チェックを実行するより簡単な方法に切り替わります。コールバックまたは $then メソッドをアタッチする代わりに、Resource.get(..) と instance.get() の両方が $promise メソッドをサポートし、両方のプロミスを自然に返します。
angular 1.2 以降、 $promise 機能が稼働します: $promise の変更
「get」リクエストを次のように変更します (元の例は angularjs.org のフロント ページにあります)。
factory('Project', function($resource) {
var Project = $resource('https://api.mongolab.com/api/1/databases' +
'/youraccount/collections/projects/:id',
{ apiKey: 'yourAPIKey' }, {
update: { method: 'PUT' }
}
);
Project.prototype.update = function(cb) {
return Project.update({id: this._id.$oid})
.$promise.then(
//success
function( value ){/*Do something with value*/},
//error
function( error ){/*Do something with error*/}
)
};
Project.prototype.destroy = function(cb) {
return Project.remove({id: this._id.$oid})
.$promise.then(
//success
function( value ){/*Do something with value*/},
//error
function( error ){/*Do something with error*/}
)
};
return Project;
});
コントローラーのどこかで、成功とエラーに同じインターフェイスを使用できるリソース「プロジェクト」インスタンスをインスタンス化できます。
var myProject = new Project();
myProject.$get({id: 123}).
.$promise.then(
//success
function( value ){/*Do something with value*/},
//error
function( error ){/*Do something with error*/}
)