0

私は angularjs 1.1.5 を使用しており、リソース用のサービス プロバイダーがあります。返された応答を再解析し、一部の情報を正規化する必要があるユース ケースが 1 つあります。これは特殊なケースですが、リソースはさまざまな場所で使用されます。プロジェクトであり、呼び出されるすべての場所で別のリソースまたはカスタム フィルターを使用する必要はありません。

クエリまたは get メソッドから戻るときに、通常の動作に影響を与えることなく、追加の関数を追加する方法はありますか?

リソース get メソッドへの呼び出しがあるたびに、コールバックを実行してデータにいくつかの変換を行い、期待どおりにこのデータを返すようなものにする必要があります。

これが現在のサービスの実装方法です。

  factory('Seccion', ['$resource', 'api_url', function($resource, api_url) {
    var Seccion = $resource(api_url + 'secciones/:seccionId/:nestedResource/:nestedId',
      {
        seccionId: '@seccionId',
        nestedResource: '@nestedResource',
        nestedId: '@nestedId'
      },
      {
      getWithNotas: {
        method: 'GET',
        params: {
          nestedResource: 'notas',
          order: 'fecha,desc;hora,desc',
          q: 'activo,=,1;borrado,=,0',
          count: 9,
          offset: 0
        }
      }
    });
    return Seccion;
  }])
4

1 に答える 1

0

コールバックで get メソッドを呼び出すことができます。ここでは、Angular の$resourceドキュメントから引用しています。

クラス オブジェクトまたはインスタンス オブジェクトのアクション メソッドは、次のパラメーターを使用して呼び出すことができます。

  • HTTP GET「クラス」アクション: Resource.action([パラメータ], [成功], [エラー])
  • GET 以外の「クラス」アクション: Resource.action([parameters], postData, [success], [error])
  • GET 以外のインスタンス アクション: instance.$action([parameters], [success], [error])

したがって、次のようなコールバックで get メソッドを呼び出すことができます:-

var s = Seccion.getWithNotas({params}, function() {
    doSomethingTo(s); 
}
于 2013-07-24T14:28:44.250 に答える