【发布时间】:2018-04-26 11:53:06
【问题描述】:
(EmberJS 2.14)
我想拥有带有 ember 的 DRY 应用程序,但是,似乎不可能使用路由操作。当我尝试使用触发操作的按钮组件时,它失败了:
new.js:
export default Ember.Route.extend({
model() {.....},
actions: {
saveStuff(newStuff) {
newStuff.save().then(() => this.transitionTo('stuffs'));
}
新的.hbs
{{basic-button texte="Create" theAction=(action 'saveStuff' model)}}
错误:
Assertion Failed: An action named 'saveStuff' was not found in (generated Stuffs.new controller)
我对删除操作和更新操作有同样的问题。我不能让自己在需要它的每个路由和视图中拥有相同的代码和模板行。
【问题讨论】:
-
移动到控制器的操作。
-
它打破了 transitionTo
-
要从控制器过渡到路由,请使用transitionToRoute。所以在你的情况下:
this.transitionToRoute('stuffs'). -
您是否考虑在
basic-button组件中定义操作并将其发送到路由?也许是旧的做事方式。
标签: ember.js ember.js-2