如何在控制器中获取树实例 - Ext 4

时间:2013-08-16 15:29:39

标签: extjs extjs4 extjs-mvc

我在控制器中获取树的实例时遇到一个小问题。好吧,没有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];
     }      

我不知道它为什么不能正常工作。如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

你需要看到函数的参数。

delete : function(btn) {

    var tree = btn.scope;
    var record = tree.getSelectionModel().getSelection()[0];


 }