@Mixail

Проблема с Ext.direct + Ext.tree

Никак не могу найти в документации к Ext.js и исходники тоже не помогают в такой проблеме:
Есть дерево (Ext.tree.treepanel).
В него грузятся данные с использованием Ext.direct, конфиг примерно такой:
...
loader: new Ext.tree.TreeLoader({
directFn: docs.getDocList
}),
...


Хочется отправлять ещё один параметр (в добавок к id_node, который отправляется автоматически), при подгрузке данных.
Возможно кто сталкивался с подобной проблемой?
  • Вопрос задан
  • 2905 просмотров
Решения вопроса 1
@shsmad
paramsAsHash: Boolean
Only used when using directFn. Send parameters as a collection of named arguments (defaults to false). Providing a paramOrder nullifies this configuration.


Судя по исходнику TreeLoader, если указаны directFn, baseParams и (!) paramsAsHash, то будет всё шоколадно.

requestData : function(node, callback, scope){
    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);
        }
…
}

…

getParams: function(node){
    var bp = Ext.apply({}, this.baseParams),
    np = this.nodeParameter,
    po = this.paramOrder;

    np && (bp[ np ] = node.id);

    if(this.directFn){
        var buf = [node.id];
        …
        if(this.paramsAsHash){
            buf = [bp];
        }
        return buf;
…
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@shsmad
Читаем мануал к TreeLoader. Чуть ли не сразу видим:
To pass extra parameters, an event handler may be attached to the «beforeload» event, and the parameters specified in the TreeLoader's baseParams property.


Так что документация и baseParams в помощь.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы