В маршрутизаторе у меня есть событие «removeComment». В контроллере, если он доступен через this.get ('target'). Send ('removeComment', context);, я получаю сообщение об ошибке Ничего не обработано событие 'removeComment'. Когда я использую this.get ('target.router'). Send ('removeComment', комментарий), ошибка становится Объект # не имеет метода 'send'. используя this.router.send ('removeComment', комментарий), даст ошибку: Невозможно прочитать свойство 'send' of undefined.emberjs-RC2- как получить доступ к экземпляру маршрутизатора от контроллера и действия не доходят до маршрутизатора
Также просто отправка действия «removeComment» в PostEditController не проходит через контроллер, вплоть до маршрута.
Как получить доступ к экземпляру маршрутизатора от контроллера в emberjs rc2 и routerV2.
Маршрутизатор:
EmBlog.Router.map(function() {
this.resource("posts", {path: '/posts'}, function(){
this.route('new');
this.resource('post', {path: '/:post_id/'}, function(){
this.route('edit', {path: '/edit'});
this.route('comments', {path: '/comments'});
this.route('newComment');
this.route('comment', {path: '/comments/:comment_id'});
this.route('editComment', {path: '/comments/:comment_id/edit'});
});
});
});
Контроллер
EmBlog.PostEditCommentController = Ember.ObjectController.extend({
destroyMe: function(comment) {
this.get('target.router').send('removeComment', comment);
}
});
Маршрутизатор
EmBlog.PostEditCommentRoute = Ember.Route.extend({
events: {
removeComment: function(context) {
var comment = context.get('content');
comment.deleteRecord();
comment.get('store').commit();
this.transitionTo('post.index');
}
}
});
Я обращаюсь к нему в шаблоне post/comments. Это контроллер для этого шаблона.
EmBlog.PostCommentsController = Ember.ArrayController.extend({
needs: ['postEditComment']
});
Почты/комментарии шаблон
<script type="text/x-handlebars" data-template-name="post/comments">
{{#each controller}}
<p><a href='#' {{action destroyMe this target="controller.controllers.postEditComment"}}> Destroy </a></p>
{{/each}}
</script>
Не могли бы вы добавить карту маршрутов, пожалуйста? Я думаю, что this.get ('target').send ('removeComment', контекст) 'обязательно должен работать, но я подозреваю, что это отправлено на другой маршрут. –
Спасибо за ваше время. Я добавил маршрутизатор в верхней части вопроса и решил также добавить ** [jsfiddle] (http://jsfiddle.net/VrR2T/6/) **. – brg