1. ホーム
  2. angularjs

[解決済み] AngularJSで$resourceサービスのエラーを処理する方法

2023-01-13 03:10:15

質問

AngularJSの$resourceモジュールを使って、APIにリクエストしています。それは$httpとは異なるので、私は私のエラーを処理する方法がわからない。

私のサービスです。

var appServices = angular.module('app.services', ['ngResource']);
appServices.factory('Category', ['$resource',
    function($resource){
        return $resource('/apicategoryerr/?format=:format', {}, {
            query: {
                method: 'GET', 
                params: { format: 'json'}, 
                isArray: true,

            }
        });
    }]);

私のコントローラー

...
Category.query(function(data) {
                console.log(data);
            });
...

このようなものが欲しいのですが...APIが動作していない場合のエラーを処理する方法がわかりません...。

Category.query().success(function() {
                console.log('success');
            }).error(function() {
                console.log('error');
            });

どのように解決するのですか?

に第2パラメータとしてエラーハンドラを渡すことができます。 query .

Category.query(function(data) {}, function() {});

EDITです。

をもう少しわかりやすくするために、いくつかの例を挙げます。

var Resource = $resource('/restapi/resource');

Resource.query(function(data) {
    // success handler
}, function(error) {
    // error handler
});

Resource.query({
    'query': 'thequery'
},function(data) {
    // success handler
}, function(error) {
    // error handler
});

Resource.query().$promise.then(function(data) {
    // success handler
}, function(error) {
    // error handler
});

Resource.query({
    'query': 'thequery'
}).$promise.then(function(data) {
    // success handler
}, function(error) {
    // error handler
});