EmberJS actions - 当包装在“actions”中时,从另一个操作调用一个操作
EmberJS actions - call one action from another when wrapped within `actions`
当包装在 EmberJS 控制器中的actions
中时,如何从另一个操作调用一个操作?
使用现已弃用的方式来定义操作的原始代码:
//app.js
App.IndexController = Ember.ArrayController.extend({
// properties
/* ... */
// actions
actionFoo: function() {
/* ... */
this.actionBar();
},
actionBar: function() {
/* ... */
}
});
//app.html
<div class="foo" {{action actionFoo this}}>
<div class="bar" {{action actionBar this}}>
但是,在 EmberJS 1.0.0 中,我们会收到弃用警告,指出操作必须放在控制器内的 actions 对象中,而不是如上所述直接放在控制器中。
根据建议更新代码:
//app.js
App.IndexController = Ember.ArrayController.extend({
// properties
/* ... */
// actions
actions: {
actionFoo: function() {
/* ... */
this.actionBar(); //this.actionBar is undefined
// this.actions.actionBar(); //this.actions is undefined
},
actionBar: function() {
/* ... */
}
}
});
//app.html
<div class="foo" {{action actionFoo this}}>
<div class="bar" {{action actionBar this}}>
但是,我发现在操作中定义的一个函数不可能调用另一个函数,因为this
对象似乎不再是控制器。
我该怎么做呢?
您可以使用 send(actionName, arguments)
方法。
App.IndexController = Ember.ArrayController.extend({
actions: {
actionFoo: function() {
alert('foo');
this.send('actionBar');
},
actionBar: function() {
alert('bar');
}
}
});
这是带有此示例 http://jsfiddle.net/marciojunior/pxz4y/的 jsfiddle
相关文章:
- 如何使jQuery插件函数可调用以供独立使用,而不在集合上操作
- Jquery菜单操作不稳定,定位不正确,存在一般错误
- 如何确定javascript已经完成了某些操作.ios上的
- 防止Alt+Shift默认操作或检测多种操作系统语言的Javascript
- 从JavaScript访问struts操作中的属性
- fluxxor向一个flux实例添加一组以上的操作
- Jquery表单验证插件-如果选中复选框,如何在提交时执行某些操作
- 操作放置在画布上的元素之间的连接
- 使用“+="操作人员
- Rails操作只调用一次,但我在ajax中每秒钟都调用一次
- Jquery未定义函数正在停止其他操作
- 如何操作iframe之外的元素
- javascript对象操作:根据指定条件选择属性
- jQuery:暂停按钮可以暂停所有其他操作
- 用于选择/文本框操作的JavaScript
- Google 脚本:用于创建日历活动的脚本运行时不会出错,但不会执行任何操作
- 通过javascript操作图像,非常简单
- 将文本框中的值用于按钮窗体操作上的变量
- EmberJS actions - 当包装在“actions”中时,从另一个操作调用一个操作
- 即使在将操作处理程序放在“actions”对象中后,我仍然在 Emberjs 中不断收到弃用消息