sendAction не работает для компонента в ember js

#ember.js

#ember.js

Вопрос:

sendAction не работает для компонента. При использовании компонента внутри представления и отправке действия из компонента в представление.

confirm-dailog.js

     import Ember from 'ember';
    export default Ember.Component.extend({
    actions:{
       closeConfirmDialog:function(){
          this.sendAction('onCancel');
       }
   }

})
  

подтвердите-dailog.hbs

 <div class="dialog" id="dialog">
   <div class="text">{{text}}</div>
   <div class="button"{{action 'closeConfirmDialog'}}>Cancel</div>
</div>
  

modal.js

 import Ember from 'ember';
export default Ember.View.extend({
   layoutName: 'components/modal-box',
   actions:
   {
       closeDialog:function()
        {   
            console.log('called model closedialog')
        },
   }
})
  

modal-box.hbs

 <div class="dialog" id="dialog">
    {{yield}}
    {{confirm-dialog onCancel="closeDialog" text="Would you like to close the modal"}}
</div>
  

когда я нажимаю на кнопку отмены, вызывается действие closeConfirmDialog, и оттуда я пытаюсь отправить действие closeDialog, но оно показывает ошибку, ничто не обработало действие «closeDialog»

здесь я добавил скриншот пользовательского интерфейса

Ember: 1.8.1

Данные Ember: 1.13.7

Рули: 1.3.0

jQuery: 1.11.1

Комментарии:

1. Почему вы используете Ember. Просмотр вместо Ember. Компонент в modal.js ?

2. @ykaragol Эмбер. Компонент работает. но у меня есть несколько случаев, когда подходит только view.

3. Можете ли вы сделать это поворотом? На самом деле у нас никогда не было необходимости в представлениях в наших 7 текущих проектах.

4. this.render(name, {into: ‘application’, outlet: ‘modal’, view:’common / modal’ }); это тот случай . я использовал view

5. В документации параметр view определяется как: «представление, связанное с маршрутом post». Вы можете указать шаблон маршрута, если хотите. Из-за этого не используйте представления.

Ответ №1:

Представления удаляются из Ember 2.0 API. http://emberjs.com/deprecations/v1.x/#toc_ember-view

Я бы посоветовал вам заменить view на Component . Более того, для вашего требования наиболее подходящим будет аддон ember-elsewhere или ember-modal-dialog.