Je reconnais que ce n'est pas une solution idéale, et que cette question est un peu vieux, mais ce code a fonctionné assez bien pour moi dans ce lieu:
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;
}
});
Vraiment, le seul grand inconvénient est l'absence totale de params quand vous descendez cette route. Dans mon cas, j'avais seulement besoin de l'ID de nœud. Mais cela devrait au moins vous donner un bon point de départ si vous voulez remplacer votre méthode de chargement! :)
Je pensais autant, merci. –