使用Sencha Architect 2配置控制器

时间:2013-08-13 13:46:50

标签: sencha-touch sencha-touch-2 sencha-architect

我正在努力实现一些相当简单的事情:使用控制器将事件附加到特定控件,但我很难使用Sencha Architect来表示这一点。

我有一个名为“Login-Button-Login”的按钮。

在我的控制器中,如果我有代码:

config: {
    control: {
        "button": {
            tap: 'onButtonTap'
        }
    }
},

onButtonTap: function(button, e, eOpts) {
    Ext.Msg.alert("onButtonTap fired");
},

按钮按预期工作。这很好,但显然它适用于所有按钮。我添加了对“Login-Button-Login”的引用(不是我选择的名字!):

config: {
    refs: {
        loginButtonTap: 'Login-Button-Login'
    },

    control: {
        "button": {
            tap: 'onButtonTap'
        },
        "Login-Button-Login": {
            tap: 'onButtonTap2'
        }
    }
},

但是,我现在如何使用引用“loginButtonTap”作为控件对象中的项目?无论我尝试使用Sencha Architect控件,我最终只能使用“Login-Button-Login”直接引用。

相关地,如何将此控制器链接到包含按钮的“登录”视图?当然,我不需要为每个参考使用完整的选择器?很明显,即使我可以完成这项工作,它目前也不会起作用,因为Login-Button-Login需要引用“登录”视图。

1 个答案:

答案 0 :(得分:1)

只需使用控件的id(或itemId)作为事件处理程序配置中controlQuery的值:

config: {
    control: {
        "#btnWhatever": {
            tap: 'onWhateverTap'
        },
}

我更喜欢使用这种将事件附加到元素的方法,因为我懒得做双重工作 - 指定对按钮的引用,然后在事件处理程序controlQuery中指定该引用。 onWhateverTap获取对按钮的引用作为参数,大多数时候您不需要其他地方的引用。