Mas*_*idi 9 javascript handlebars.js ember.js
在我的车把模板中,我有这个循环:
{{#each itemController="fund"}}
<li>
<label>{{title}}</label>
<span>{{amount}}</span>
{{input type="text" placeholder="new user"
value=newFullName action="createUser"}}
{{partial 'user-list'}}
</li>
{{/each}}
Run Code Online (Sandbox Code Playgroud)
并且需要将当前对象作为参数传递给'createUser'动作.像这样的东西:
action="createUser(this)"
Run Code Online (Sandbox Code Playgroud)
要么:
action 'createUser' this
Run Code Online (Sandbox Code Playgroud)
但似乎ember无法处理输入字段内的操作参数......
我错过了什么吗?
and*_*rov 10
您现在可以传递一个函数以及值 -
submit=(action 'setName' 'Sal')
Run Code Online (Sandbox Code Playgroud)
http://emberjs.com/blog/2015/06/12/ember-1-13-0-released.html#toc_closure-actions
我认为使用view helper中的action属性不可能这样做input.
解决方法可以action使用submit事件将输入包装在使用视图助手的表单中,如下所示:
模板
{{#each}}
<li>
<form {{action "createUser" this on="submit"}}>
{{name}}
{{input type="text" value=name}}
</form>
</li>
{{/each}}
Run Code Online (Sandbox Code Playgroud)
路线
...
actions: {
createUser: function(user) {
alert(user.get('name'));
}
}
...
Run Code Online (Sandbox Code Playgroud)
因此,当用户按Enter键时,将触发事件.
动作属性和动作视图助手之间的主要区别在于动作视图助手更灵活,您可以提供上下文并将其放在任何标记内:
<div {{action "someAction" someObject}} on="click">Click me</div>
Run Code Online (Sandbox Code Playgroud)
在路线:
actions: {
someAction: function(someObject) {
// do something with the someObject
}
}
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅文档
请在jsfiddle中查看该示例的实际操作http://jsfiddle.net/marciojunior/UAgjX/
我希望它有所帮助
| 归档时间: |
|
| 查看次数: |
13519 次 |
| 最近记录: |