【问题标题】:Configuring a controller using Sencha Architect 2使用 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 中重新打开,更改将被删除。跨度>

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


【解决方案1】:

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

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

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

【讨论】:

  • 感谢您的回答 - 那么为什么建议使用 refs?
  • 你可以在这里阅读它们:docs.sencha.com/touch/2.2.1/#!/guide/controllers 基本上是一样的,除了自动生成的 getter 和一些额外的功能,比如autoCreate
猜你喜欢
  • 2013-11-03
  • 2013-11-04
  • 2014-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-09
  • 1970-01-01
相关资源
最近更新 更多