2

AngularJS $resource の query() メソッドをカスタム $http-GET で上書きしようとしています。ただし、操作の結果を上書きしないようです。methoddataおよびheaders、notを含むオブジェクトを返しますdata.rows[]

angular.module('couchdb', ['ngResource']).
  factory('Project', function($resource, $http) {
    var Project = $resource('http://couchdb/mydb', {}, {
        'update': { method: 'PUT' },
        'query':  {method:'GET', isArray: false}
      }
    );

    Project.query = function() {
      return $http({method: 'GET', url: 'http://couchdb/mydb/_design/projects/_view/index'}).
        success(function(data, status, headers, config) {
          return data.rows;
        }).
        error(function(data, status, headers, config) {
          $scope.data = data || "Request failed";
          $scope.status = status;
        });
    };

    return Project;
  });

リソースの結果の行のみを取得するにはどうすればよいですか?

4

1 に答える 1

0

ngResource$httpサービスに頼る必要はありません。関数を再定義する必要はありません- (デフォルトで含まれていることに加えて)Project.queryのアクションとして既に示しているためです。Project $resource

これは、Project.query関数の準備ができており、再定義する必要がないことを意味します。文字通り、ただ実行するだけでProject.query()結果を得ることができます。成功/失敗のコールバックをサポートしているため、Project.query({}, successCallback, failureCallback)引数を送信せず、返されたデータにアクセスできます。

AngularJS の $resourceのドキュメントをよく読むことをお勧めします。良い例がたくさんあるからです。基本的な例は、Angular チュートリアルのステップ 11 にも含まれています。

于 2013-02-18T16:20:46.227 に答える