#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.