强迫先前和编辑Controller中的两个工作?

时间:2012-11-07 11:58:39

标签: extjs extjs4 extjs4.1 extjs-mvc

我正在使用Extjs 4.1.1。因为我跟随MVC我决定移动'编辑'&来自网格的'beforeedit'函数(rowEditing插件),即:

listeners: {'edit': function(editor, e) {
    ...
    },'beforeedit': function(editor, e) {
    ...
    }}

并将其放入控制器内,如: Ext JS 4 - How to control rowEditor inside controller

我的新代码如下:

init: function() {

    this.control({          

        'myGrid': {
            edit: this.onRowEdit
        },

        'myGrid': {
            beforeedit: this.onRowBeforeEdit
        },

    });

},

onRowEdit: function(editor, e) {
    ... // Fires only when 'beforeedit' not present in this.control
},

onRowBeforeEdit: function(editor, e) {
    ... // Always fires
},

现在,'beforeedit'发射得很好。我的问题是'编辑'仅在'beforeedit'不存在时触发。有人有同样的问题吗?当然,旧的网格监听器就像两种方式一样正常。

修改 我刚刚观察到如果我在this.control()中首先定义'beforedit'并且第二次'edit',那么'beforeedit'就是那个没有触发的那个。

1 个答案:

答案 0 :(得分:3)

将它们放在同一个选择器中:

init: function() {

    this.control({          

        'myGrid': {
            edit: this.onRowEdit,
            beforeedit: this.onRowBeforeEdit
        }    
    });

}

如果我这样做,那就是同样的问题:

var name = {
   first: 'John',
   first: 'Doe'
};
alert(name.first); //will show a messagebox with 'Doe'