使用 Sencha Architect 2 配置控制器

Posted

技术标签:

【中文标题】使用 Sencha Architect 2 配置控制器【英文标题】:Configuring a controller using Sencha Architect 2 【发布时间】:2013-08-13 13:46:49 【问题描述】:

我正在尝试实现一些相当简单的事情:使用控制器将事件附加到特定控件,但我正在努力使用 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 需要引用“Login”视图。

【问题讨论】:

如果你解释清楚..你会得到答案 @Viswa 哪一部分不清楚?我已经尽可能清楚地列出了所有内容。 Login-Button-Login 是 id 或 ItemId 还是操作?.. 你的意思是“我现在如何使用引用“loginButtonTap”作为控件对象中的项目”.. 你想要在控制器中获取按钮对象? Login-Button-Login 是 GUI 中元素的 id。不在控制器对象中,在配置的 control 部分中。我想要的是此链接中第二篇文章给出的代码:sencha.com/forum/… - 代码很好,但 Sencha Architect 不允许这样做,如果我编辑文件然后在 SA 中重新打开,更改将被删除。跨度> 【参考方案1】:

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

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

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

【讨论】:

感谢您的回答 - 那么为什么建议使用 refs? 你可以在这里阅读它们:docs.sencha.com/touch/2.2.1/#!/guide/controllers 基本上是一样的,除了自动生成的 getter 和一些额外的功能,比如autoCreate

以上是关于使用 Sencha Architect 2 配置控制器的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Sencha Architect 2 中添加“Ext.require”

将 Sencha Architect 项目从 Sencha Touch v2.0.x 更新到 Sencha Touch 2.1.x

Sencha Architect怎么样

Sencha Architect 在本地设置 SDK 路径 - 初学者

Sencha Architect XTemplate 范围

Sencha Architect - 使用表单创建屏幕