【发布时间】:2015-08-08 05:39:21
【问题描述】:
我正在尝试使用 Emberjs 组件。我在行动上遇到了麻烦。
这是我的组件:
export default Ember.Component.extend({
actions: {
openObject: function (id) {
this.sendAction('openObject', id);
}
},
...
这里是我的控制器,我也在路由中创建了相同的操作。
export default Ember.Controller.extend(
{
actions: {
openObject: function (id) {
self.transitionToRoute('objects.bc', id);
}
}
}
);
而我需要的只是通过组件的操作进行转换。
只有当我以这种方式连接控制器动作和组件动作时它才有效:
{{bc-table openObject="openObject"}}
有没有办法在没有这种连接的情况下将动作从组件发送到路由器/控制器?
【问题讨论】:
-
"targetObject" 是一个指向父视图控制器的属性,您可以发送该对象,但据我所知,这不是一个好方法,因为它有点扼杀了组件应该是自包含的意识形态——如果代码的其他地方需要使用相同的组件但“openObject”应该做其他事情怎么办?扼杀灵活性。 emberjs.com/api/classes/…
-
你应该依赖动作冒泡。稍后我会发布一个示例(现在吃午饭)
-
同样在你的控制器示例中——是自定义的吗?
-
我已经理解了,非常感谢!
标签: javascript ember.js components