我在控制器中获取树的实例时遇到一个小问题。好吧,没有MVC模式,它看起来像这样,它工作正常。
var tree = Ext.create('Ext.tree.Panel', {
tbar : [{
text : 'Delete',
handler : function() {
var record = tree.getSelectionModel().getSelection()[0];
record.remove(true);
tree.getView().refresh();
}
}]
});
然后我创建了MVC模式,我想得到树引用,这样我就可以调用方法getSelectionModel()
等(就像我在上面的代码中所做的那样)。
Ext.define("MyApp.controller.GridPanelTreeController", {
views: ["GridPanelTree"],
refs : [{
ref: "controllerDataSelector",
selector: "tree"
}],
init: function(){
this.control({
"toolbar button[action=delete] " : {
click : this.delete
}
});
},
delete : function() {
/* this returns an error, that tree is undefined*/
var tree = this.getControllerDataSelector();
var record = tree.getSelectionModel().getSelection()[0];
/* this returns an error, that TypeError: tree.getSelectionModel is not a function */
var tree = this.getGridPanelTreeView();
var record = tree.getSelectionModel().getSelection()[0];
}
我不知道它为什么不能正常工作。如何解决这个问题?
答案 0 :(得分:0)
你需要看到函数的参数。
delete : function(btn) {
var tree = btn.scope;
var record = tree.getSelectionModel().getSelection()[0];
}