相关疑难解决方法(0)

从Ember的控制器动作返回一个承诺?

我有一个组件需要与控制器通信,并最终在控制器说一切正常执行一些清理(即jQuery"un"-initialization).我认为实现这一目标的最佳方法是使用promise,以便在控制器完成任务后组件可以清理.但是控制器动作怎么能回复承诺呢?或者,组件可以直接在控制器上调用动态方法吗?

例如,假设我有一个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')
Run Code Online (Sandbox Code Playgroud)

我可以在名为的模板中实例化组件foo,

{{modal-form save="save" ...}}
Run Code Online (Sandbox Code Playgroud)

save在FooController上实现该方法

App.FooController = Ember.ObjectController.extend
  save: ->
    # how can we tell the component that this was successful?
Run Code Online (Sandbox Code Playgroud)

如您所见,我只希望closeModalsave动作成功时执行该功能.换句话说,只有在成功保存记录时才关闭模态.

这是可能的,还是我完全错了?

javascript ember.js

17
推荐指数
1
解决办法
5004
查看次数

标签 统计

ember.js ×1

javascript ×1