1

Receipt.query()次のように定義された単純なリソースがある場合、メソッドを呼び出してサーバーからコレクションを取得できることを理解しています。Receipt.query({freightBill: 123})また、 を呼び出すと、 FreightBill が のようなクエリ パラメータとして追加されることも理解しています/distribution/inbound?freightBill=123。この方法でクエリ パラメータを渡すにはどうすればよいでしょうか。ただし、ファクトリから、ページ、サイズ、および並べ替えのデフォルトのクエリ パラメータも追加します。

結果のリクエストは次のようになります/distribution/inbound?freightBill=123&page=0&size=20&sort=number,desc

angular.module('webappApp')
  .factory('receipts', function ($http, $resource, $location) {
    var search = $location.search();
    var page = search.page||0;
    var size = search.size||20;
    var sort = search.sort||'number,desc';

    return $resource('/distribution/inbound');
  });
4

2 に答える 2

4

$resource の 2 番目のパラメーターは、既定のパラメーター用です。ドキュメント :リンク

angular.module('webappApp')
  .factory('receipts', function ($http, $resource, $location) {
    return $resource('/distribution/inbound',{page:0,size:20,sort:'number,desc'});
  });

これらはそれらを「デフォルト」にします。.query新しい値をlike に渡すことでオーバーライドできることを意味しますReceipt.query({freightBill: 123,size:20,page:2})

于 2014-05-23T12:28:45.240 に答える
0

私自身の質問に答えるには、実際には非常に簡単でした...クエリパラメーターをリソースパスに追加するだけで機能しました。を呼び出すとReceipt.query({freightBill: 123})、Angular&freightBill=123はパスの末尾にインテリジェントに追加します。そこにページ、サイズ、並べ替えのパラメーターがなければ、?freightBill=123それが唯一のパラメーターであるため、Angular は追加するだけです。

angular.module('webappApp')
  .factory('receipts', function ($http, $resource, $location) {
    var search = $location.search();
    var page = search.page||0;
    var size = search.size||20;
    var sort = search.sort||'number,desc';

    return $resource('/distribution/inbound?page=' + page + '&size=' + size + '&sort=' + sort);
  });
于 2014-05-23T12:24:42.953 に答える