emberjs: как вызвать пользовательское событие в представлении
Я хотел бы превратить примитивное событие (щелчок) в семантическое событие, например "deleteTodo". Это описано здесь, но не как реализовать:(
У меня есть следующий код:
App.TodoView = Em.View.extend({
click: function(e) {
this.trigger("deleteTodo");
}
});
App.Router.map(function(match) {
match('/').to('index');
});
App.IndexRoute = Ember.Route.extend({
deleteTodo: function(e) {
// this code is never executed :(
}
}) ;
После выполнения "щелчка" я вижу, что вызывается функция щелчка TodoView, но не функция deleteTodo из IndexRoute. Любые предложения, что может пойти не так?
Ваше здоровье
1 ответ
Вы можете использовать this.get("controller"). Send("deleteTodo"). Это отправит сообщение контроллеру, если контроллер не обрабатывает deleteTodo, он отправит сообщение маршрутизатору и там будет обработан.
click: function(e) {
this.get('controller').send("deleteTodo");
}
В вашем маршрутизаторе вам также необходимо определить событие:
events: {
doStuff: function(e) {
alert("Do stuff") ;
}
}
Я бы обычно делал удаление записи в контроллере. Похоже, поместить это в событие маршрутизатора не было бы идеальным.