【问题标题】:Ember js pre2: default action for 'selector'Ember js pre2:“选择器”的默认操作
【发布时间】:2013-05-16 20:19:29
【问题描述】:

例如,我们有一个登录视图,其中包含“用户名”、“密码”和“国家/地区”字段以及“登录名”。

当在组中的任何输入上按 Enter 键时,如何调用与“登录”按钮相关的操作。?例如,某种容器(div、form、fieldset 等)中的所有输入。

【问题讨论】:

  • 登录视图相关的动作是标准形式submit动作吗?

标签: ember.js


【解决方案1】:

要让表单控件触发sumbit 操作,您可以定义submit 类型的控件。

...
{{input type="submit" ...}}
...
<button type="submit">...</button>
...

或者更优雅的方法是让您的父视图捕获所有事件并触发一次submit,但这取决于您的视图的嵌套程度。

希望对你有帮助

【讨论】:

  • 啊,所以我可以检查父视图中的keypressed 事件和send,或者一旦我检测到输入被按下,就调用控制器操作?
  • 我接受了这一点,因为它似乎更灵活一些,但在某些情况下,@Anonymous 的回答也是一种选择。
  • @EbenRoux,是的,您可以让事件冒泡并在更高的层次结构级别捕获它并调用您的控制器操作,但请确保您的子视图在到达父视图之前都不会停止事件传播.
【解决方案2】:

将您的操作放在表单标签上,如下所示:

<form {{action yourAction on="submit"}}>
{{input text}}
{{input text}}
<button type="submit"></button>
</form>

这将导致您的事件在表单提交时触发(通过单击按钮、在字段中按 Enter 等。

【讨论】:

  • 有没有办法在&lt;div&gt; 中发生同样的事情?我想被限制在form 并不是世界上最糟糕的事情,但能够在任何容器上进行分组会很好。我会尽快尝试一下。
  • 这似乎不适用于所有控件,但 +1 因为它确实工作:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-23
  • 1970-01-01
  • 2016-02-20
  • 1970-01-01
  • 2017-03-11
  • 1970-01-01
相关资源
最近更新 更多