从另一个视图Extjs getComponent

时间:2015-06-10 10:51:19

标签: extjs mvvm combobox

(Snapshoots here了解详情) 我得到了这个:主视图中的组合框和3个使用组合框加载其商店的标签。

文件Mathrice*.js描述整个视图,其他文件(在目录中)是选项卡。 我的问题是,是否有办法在标签控制器中获取组合框

3 个答案:

答案 0 :(得分:0)

如果你的组合框有一个ID,如下所示

Ext.create('Ext.form.ComboBox', {
    id: 'mycombobox',
    renderTo: Ext.getBody()
});

然后您可以使用以下命令在控制器中的任何位置获取组合框组件:

var cb = Ext.getCmp("mycombobox")
//note the name is the id of the combobox
//here cb will be the combobox instance that you need.

答案 1 :(得分:0)

解决方案: 只需要了解viewModel如何在sencha中工作(cf sencha doc

标签的控制器中,我试图获得包含组合框父控制器,然后我就像我一样玩#&# 39;在那个观点中。 在一个选项卡的控制器下面

  ,mathrice : this.getViewModel().getParent().getView().getController()
  ,init:function  () {
        console.log(" VPN Tab Controller");
        var me=this
        ,selectALab = me.mathrice.lookupReference('comboboxLab')
    }

答案 2 :(得分:0)

如果组合和标签位于不同的控制器下,则标签控制器不需要知道组合。当您感兴趣的组合更改发生时,您希望让组合控制器触发事件​​。选项卡控制器应该监听此事件并采取措施。这种方法减少了耦合,使您的应用程序更易于维护。