У меня есть компонент, который должен связываться с контроллером и, в конечном счете, выполнять некоторую очистку после того, как контроллер говорит, что все в порядке (т.е. 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
было успешным. Другими словами, только закрыть модальный, если запись была успешно сохранена.
Возможно ли это, или я полностью ошибаюсь?