我正在尝试使用 URL 通过 URL 传递参数:setParams({id:id,model:mod})
,并在浏览器的地址栏中看到localhost/MVC/query?id=1&model=member
。这是成功的。
但我想传递 url 栏中的参数,如下所示:localhost/MVC/query?fq=model: member+model:new_member
. 我正在尝试集成“Solr”搜索服务器,这是支持过滤查询的语法。
任何帮助表示赞赏。
看看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
使用:
而不是 = 和+
而不是&
. 最后,您在 Button 中覆盖getHref()
to usetoSolrQueryString
函数。请记住,回报应该是:
return me.href ? Ext.urlAppend(me.href, 'fq=' + toSolrQueryString(params)) : false;