【发布时间】:2014-08-11 20:42:35
【问题描述】:
我正在为不同的路由构建一个 mixin 来处理保存操作。有时在保存后我想做额外的事情,所以我想将 saveCallback 操作发送回路由。
如果定义了动作,是否可以询问路由?或者:我可以检索路由的所有功能,以便我可以检查自己是否定义了路由?
代码混合:
export default Ember.Mixin.create({
actions: {
save: {
var self = this;
this.get('model').save()
.then(function(result) {
//do stuff
//Something like if(self.hasDefined('saveCallBack')) {
self.send('saveCallback')
}
}, function(errorReason) {
//error handling
});
}
}
}
我不能只触发发送操作,因为如果未定义操作,则会引发 Nothing handled the action 'saveCallback' 错误。
【问题讨论】:
-
为什么不把'saveCallback'放在应用程序路由中。如果您的路由不处理该操作,则应用程序路由应该吞下它。
-
这确实有效,但我不会说它很干净。只是在任何地方放置一个功能来防止错误不是我的一杯茶。不过,谢谢输入!
标签: ember.js