Отправка параметров с помощью ExtJS TreeLoader - PullRequest
1 голос
/ 24 сентября 2010

Можно ли изменить структуру URL-адреса, созданного ExtJS, когда baseParams отправляются на сервер через dataUrl?

Например, если он стоит, задавая baseParams следующим образом:

baseParams: {
    category: 2
},
dataUrl:'testclass.php'

создаст следующую строку запроса:

testclass.php?category=2

Что я хочу сделать, это получить данные в спокойной форме, например:

testclass/category/2

ЭтоСтруктура URL возможна с ExtJS?Благодарю.

Ответы [ 2 ]

1 голос
/ 19 октября 2010

Я признаю, что это не идеальное решение, и этот вопрос немного устарел, но этот код довольно хорошо сработал для меня в этом месте:

Ext.override(Ext.tree.TreeLoader, {
    requestData : function(node, callback, scope) {
        var originalDataUrl = this.dataUrl;
        this.dataUrl += "/" + this.getParams(node).node;
        if(this.fireEvent("beforeload", this, node, callback) !== false){
            if(this.directFn){
                var args = this.getParams(node);
                args.push(this.processDirectResponse.createDelegate(this, [{callback: callback, node: node, scope: scope}], true));
                this.directFn.apply(window, args);
            }else{
                this.transId = Ext.Ajax.request({
                    method:this.requestMethod,
                    url: this.dataUrl||this.url,
                    success: this.handleResponse,
                    failure: this.handleFailure,
                    scope: this,
                    argument: {callback: callback, node: node, scope: scope}
                    //params: this.getParams(node)
                });
            }
        }else{
            // if the load is cancelled, make sure we notify
            // the node that we are done
            this.runCallback(callback, scope || node, []);
        }
        this.dataUrl = originalDataUrl;
    }
});

Действительно, единственный большой недостатокэто полное отсутствие параметров, когда вы идете по этой дороге.В моем случае мне нужен был только идентификатор узла.Но это должно по крайней мере дать вам хорошую отправную точку, если вы хотите переопределить свой метод загрузки!:)

1 голос
/ 24 сентября 2010

Конечно, вы могли бы написать свой собственный TreeLoader, это был бы единственный способ IIRC.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...