0

我正在尝试使用 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”搜索服务器,这是支持过滤查询的语法。

任何帮助表示赞赏。

4

1 回答 1

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使用:而不是 = 和+而不是&. 最后,您在 Button 中覆盖getHref()to usetoSolrQueryString函数。请记住,回报应该是:

return me.href ? Ext.urlAppend(me.href, 'fq=' + toSolrQueryString(params)) : false;
于 2012-05-11T08:52:32.113 回答