0

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

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

4

1 回答 1

0

您需要查看函数的参数。

delete : function(btn) {

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


 }
于 2014-08-21T10:18:44.827 回答