2013-06-21 2 views
0

RequestPager는 server_api의 모든 속성을 쿼리 문자열로 요청에 보냅니다. 그러나 때로는 어떤 조건에서 매개 변수를 제외하고 싶습니다. 이것은 내가 PARAM을하고 있어요 방법입니다 : this.searchQuery가 비어Backbone.js requestPager는 조건부로 URL에서 매개 변수를 제외합니다.

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

경우가 ?query=&type=1 같은 URL을 수 있습니다. 그러나 비어 있거나 내 다른 조건이 실패 할 경우 query 또는 type을 보내고 싶지 않습니다.

나는 더러운 방법 등을 알고 :

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

을하지만 이것은 유지 보수가 아니다. 텍스트 시간 때문에이 함수를 만들어야합니다. 그래서, 나는 이것을하는 더 좋은 방법을 찾고 있습니다. 어떤 도움?

+0

여기에 있습니다 : https://github.com/addyosmani/backbone.paginator – HungryCoder

답변

0

당신은 how server_api is used 보면 :

_.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 적절한 객체를 반환하는 함수를 만들 수 있다는 것을 의미한다.

+0

답변을 읽기 전에 이미이 코드를 살펴 보았습니다. 그러나 여기서'_.result'의 목적을 잘못 해석했습니다. 나는 그것이 ('server_api') 속성을 위해 이것을한다고 생각했다. 고마워. – HungryCoder

관련 문제