У меня есть компонент, который должен связываться с контроллером и, в конечном счете, выполнять некоторую очистку после того, как контроллер говорит, что все в порядке (т.е. jQuery "un" -инициализация). Я думаю, что лучший способ добиться этого - с обещанием, чтобы компонент мог очистить после того, как контроллер выполнит свою задачу. Но как действие контроллера может дать обещание? В качестве альтернативы, может ли компонент вызвать динамический метод непосредственно на контроллере?
Например, скажем, у меня есть 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" ...}}
И реализуем метод save на FooController
App.FooController = Ember.ObjectController.extend
save: ->
# how can we tell the component that this was successful?
Как вы можете видеть, я хочу, чтобы функция closeModal выполнялась, если действие save было успешным. Другими словами, только закрыть модальный, если запись была успешно сохранена.
Возможно ли это, или я полностью ошибаюсь?