Привет всем!
Решил посмотреть для себя emberjs. Фреймворк активно движется к 2.0 и даже те недавние примеры, что есть в сети, уже не работают с текущей версии без допила. Вопрос банальный, есть контроллер, который унаследован от ArrayController, в его шаблоне отображаю элементы, сам контроллер:
App.ListController = Ember.ArrayController.extend({
itemController: 'item',
});
шаблон:
{{#each item in model}}
<div>
<h1>{{item.name}}</h1>
<a {{action "removeItem"}}>remove</a>
</div>
{{/each}}
сам itemController
App.ItemController = Ember.Controller.extend({
actions: {
removeItem: function() {
var item = this.get('model');
item.destroyRecord();
}
}
});
в итоге все отображается, но при клике на удалить получаю
Error: Nothing handled the action 'removeItem'. If you did handle the action, this error can be caused by returning true from an action handler in a controller, causing the action to bubble.
то есть action в дочернем контроллере не перехватывается, если вставить в ListController нужный action
removeList: function() {
console.log('???');
var item = this.get('model');
console.log(item);
}
то соответственно выполняется он, но модель при этом от текущего контоллера, а как получить нужный элемент и удалить его?.. передавать айди текущего айтема, искать в листе и удалять? но я так понимаю, что это не совсем эбмер-way?
соответственно вопросов два, почему не обрабатывается экшн в дочернем контроллере, либо как можно обойтись без него?
И может кто посоветовать какие-нибудь материалы по изучению, а то официальный гайд ответы на все вопросы не дает, он описывает все отдельными примерчиками, а какого-то комплексного подхода ко всему не дает. Даже немного обескураживает такой простой момент, что в гайде показывают как использовать ObjectController, но при попытке использования выдается информация, что уже deprecated, используйте просто Controller. Соответственно использование ObjectController и itemController непосредственно в шаблоне решает вопрос с экшеном в дочернем, но при переделке под "новые" стандарты (Controller и itemController в коде контроллера) работать перестает.
Может быть вопрос очень глупый, но я первый день его смотрю и пока не могу сообразить, где же я совершаю ошибку.