我有一个新资源的控制器,在保存时,打算转换到其页面,然后触发闪存通知。我无法使用Flash通知。
App.StoriesNewController = Ember.ObjectController.extend
...
actions:
updateStory: ->
if @get('model.isValid')
@get('model')?.save().then (data) =>
@transitionTo('story', @get('model'))
Example.flash(success: 'The story was successfully updated.')
, (reason) =>
message = (e for _, e of reason.errors).join("\n")
Example.flash(error: message)
else
Example.flash(error: 'Please fill out required fields')
return false
我已尝试在转换之前,转换之后或作为承诺的结果放置闪存,例如
@transitionTo('story', @get('model')).then =>
Example.flash(success: 'The story was successfully updated.')
这些都不起作用。我唯一需要工作的是使用超时:
@transitionTo('story', @get('model')).then =>
setTimeout(->
Example.flash(success: 'The story was successfully updated.')
, 100)
但这感觉特别不雅。有更好的方法吗?
答案 0 :(得分:0)
亚历,
我不认为你已经告诉我们你的" Flash消息"。这种观点在哪里生活?是在应用程序模板中还是在StoriesNew
模板中?
我问的原因是,一旦您启动了转换,您应该假设您当前的视图不再可见(情况可能并非总是如此,但它是一个安全的假设)。
以下是您所描述的JSBin示例:http://emberjs.jsbin.com/yixuwamo/5