Url参数和特定语法

时间:2012-05-10 18:10:48

标签: solr extjs4

我正在尝试使用以下网址通过网址传递参数:setParams({id:id,model:mod}),并在浏览器的地址栏中看到localhost/MVC/query?id=1&model=member。它很成功。

但我想传递url栏中的参数:localhost/MVC/query?fq=model: member+model:new_member。我正在尝试集成“Solr”搜索服务器,这是支持过滤查询的语法。

任何帮助表示感谢。

1 个答案:

答案 0 :(得分: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()以使用toSolrQueryString功能。请记住,返回应该是:

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