Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 简单的Ember.js输入语法_Javascript_Ember.js - Fatal编程技术网

Javascript 简单的Ember.js输入语法

Javascript 简单的Ember.js输入语法,javascript,ember.js,Javascript,Ember.js,我在ember指南中看到了关于如何在{{input}助手上执行操作语法的冲突。我指的是按键和向上键参数 显示它时不带括号,如下所示: {{input value=firstName key press=“updateFirstName”} 然而(对于名为“app/templates/components/list filter.hbs”的代码片段),它确实使用了括号: {{input value=value key up=(action'handleFilterEntry')class=“lig

我在ember指南中看到了关于如何在
{{input}
助手上执行操作语法的冲突。我指的是
按键
向上键
参数

显示它时不带括号,如下所示:

{{input value=firstName key press=“updateFirstName”}

然而(对于名为“app/templates/components/list filter.hbs”的代码片段),它确实使用了括号:

{{input value=value key up=(action'handleFilterEntry')class=“light”placeholder=“Filter By City”}



我不确定为什么API文档会省略括号,但示例将它们放在了括号中。当您使用以下格式时,
key up=(action'handleFilterEntry')
将调用
handleFilterEntry
函数,并使用以下参数
value
jQueryEvent

同样地

key up='handleFilterEntry'
===>值,jQueryEvent

keyUp=(操作“handleFilterEntry”)
===>仅限于jQueryEvent

keyUp='handleFilterEntry'
===>不会触发事件-这是错误的。它类似于普通事件,因此需要提供函数而不是字符串

当被Dasherise化时,在input helper中,您将获得第一个参数值,然后是jQuery事件。如果没有破折号,那么这是正常的事情,因此您将单独获得jQuery事件参数


这证明了这种行为。

我相当肯定,这是因为动作部分是隐含的,这是一个内置事件,所以不需要它;在第二个片段中它是无关的。你能解释一下你的意思吗:你将在争论中得到什么。你有任何例子或链接来更好地理解这一点。谢谢你,这更有意义。您能否解释一下
keyUp='handleFilterEntry'
在哪些方面可能起作用。
{{input
帮助程序的设计方式是,它将响应中提到的所有事件,但事件名称必须是dasherize。但是对于正常的输入元素,您不需要dasherize事件名称。您可以像这样使用它
。在这种情况下,
keyUp='handleFilterEntry'
事件名称
keyUp
由浏览器管理,而不是由Ember,所以您需要分配函数而不是字符串。对于Ember管理的事件(
keyUp
),您可以提到字符串/函数,但是对于普通DOM事件(
keyUp
),您需要始终分配函数。这更有意义。我非常感谢。