0

RequestPager は、server_api のすべての属性をクエリ文字列としてリクエストに送信します。ただし、ある条件でパラメータを除外したい場合があります。これがどのように、私はパラメータを設定しています:

server_api: {
        query: function () {
            return this.searchQuery
        },
        type: function(){ return this.searchType }
}

this.searchQueryが空の場合、URL は のようになります?query=&type=1。しかし、送信したくない、queryまたはtypeそれが空である場合、または他の条件が失敗した場合。

私は次のような汚い方法を知っています:

if(!myCollection.searchQuery){
    delete(myCollection.server_api.licensed);
}

しかし、これは維持できません。テキストの時間なので、この関数を作成する必要があります。だから、私はこれを行うためのより良い方法を探しています。ヘルプはありますか?

4

1 に答える 1

0

の使用方法server_apiを見ると、次のようになります。

_.each(_.result(self, "server_api"), function(value, key){
  if( _.isFunction(value) ) {
    value = _.bind(value, self);
    value = value();
  }
  queryAttributes[key] = value;
});

あなたはそれが使用することがわかります_.result

結果 _.result(object, property)

名前付きプロパティの値が関数の場合は、それを呼び出します。それ以外の場合は返却してください。

var object = {cheese: 'crumpets', stuff: function(){ return 'nonsense'; }};
_.result(object, 'cheese');
=> "crumpets"
_.result(object, 'stuff');
=> "nonsense"

つまりserver_api、適切なオブジェクトを返す関数を作成できます。

于 2013-06-26T06:27:20.257 に答える