【发布时间】:2014-01-15 14:30:34
【问题描述】:
我有一个组件需要与控制器通信,并最终在控制器说一切正常之后执行一些清理操作(即,jQuery “un”-initialization)。我认为实现这一点的最佳方法是承诺,以便在控制器完成其任务后组件可以清理。但是控制器操作如何返回承诺?或者,组件可以直接在控制器上调用动态方法吗?
例如,假设我有一个ModalDialogComponent。
App.ModalDialogComponent = Ember.Component.extend
didInsertElement: ->
@$('.modal').modal('show')
actions:
save: ->
@sendAction('save').then(@closeModal.bind(@))
# some other actions are omitted
closeModal: ->
@$('.modal').modal('hide')
我可以在一个名为 foo 的模板中实例化组件,
{{modal-form save="save" ...}}
并在FooController上实现save方法
App.FooController = Ember.ObjectController.extend
save: ->
# how can we tell the component that this was successful?
如您所见,我只希望closeModal 函数在save 操作成功的情况下执行。也就是说,只有在记录保存成功的情况下才关闭模态框。
这可能吗,还是我完全错了?
【问题讨论】:
标签: javascript ember.js