2012-05-10 4 views
0

URL을 통해 매개 변수를 전달하려고합니다 : setParams({id:id,model:mod}), 브라우저의 주소 표시 줄에 localhost/MVC/query?id=1&model=member이 표시됩니다. 그것은 성공적입니다.URL 매개 변수 및 특정 구문

하지만 URL 바에서 다음과 같이 표시 될 매개 변수를 전달하고 싶습니다. localhost/MVC/query?fq=model: member+model:new_member. "Solr"검색 서버를 통합하려고하는데, 이것은 쿼리 필터링을 지원하는 구문입니다.

도움을 주시면 감사하겠습니다.

답변

0

그냥 Button#getHref()에서 살펴 :

getHref: function() { 
    var me = this, 
     params = Ext.apply({}, me.baseParams); 
    params = Ext.apply(params, me.params); 
    return me.href ? Ext.urlAppend(me.href, Ext.Object.toQueryString(params)) : false; 
}, 

toQueryString()을 :

toQueryString: function(object, recursive) { 
    ... 
    for (j = 0, ln = paramObjects.length; j < ln; j++) { 
     ... 
     params.push(encodeURIComponent(paramObject.name) + '=' + encodeURIComponent(String(value))); 
    } 
    return params.join('&'); 
}, 

그래서 난 당신이 toQueryString의 새 버전을 작성해야 생각, 가정 대신의 :를 사용하는 toSolrQueryString입니다 = 및 + 대신 &입니다. 마지막으로 getHref()을 재정 의하여 버튼에 toSolrQueryString 기능을 사용합니다. 반환이 있어야 할 기억

return me.href ? Ext.urlAppend(me.href, 'fq=' + toSolrQueryString(params)) : false; 
+0

한 번 더 통지가 여전히 SOLR 쿼리의 스타일을 얻을 Ext.Object.toQueryString이 (PARAMS)'문자열을 얻기 위해, 다음()'적용 교체''기능을 사용할 수 있습니다 문자열 대신에 새로운 함수'toSolrQueryString()'을 쓰는 대신에 –