2012-06-06 4 views
1

Я пытаюсь обновить свой код, чтобы использовать маршрутизатор от emberjs master вместо того, чтобы полагаться на ember-routeemanager. Мой код в основном основан на https://gist.github.com/2728699. Я создал скрипку, чтобы показать, о чем я говорю в http://fiddle.jshell.net/pszvJ/19/show/#/postsМаршрутизатор работает только на одном уровне, а не на корне.

Когда я нажимаю «Маршрут проверки комментариев» и «Показать комментарий теста». Я никогда не получаю console.log, который должен иметь, но он работает для обоих «posts» действия.

Также, когда я пытаюсь добраться напрямую /. Я получаю «Не могу найти состояние для пути /», хотя/должен быть моим корневым элементом, где я печатаю главную точку входа. Точка входа регистрируется, но он не позже.

Спасибо за вашу помощь

ответ

4

по вашей скрипке, ваш ро Uter имеет состояние:

  • root.posts.index (#/сообщения)
  • root.posts.show (#/сообщения/42)
  • root.posts.comments.index (#/сообщения/комментарии)
  • root.posts.comments.show (#/сообщения/комментарии/42)

Если вы хотите обрабатывать URLs типа #/сообщений/42/комментариев/1, "комментариев" государство должно быть вложенным в состояние «posts.show».

И вы не можете связаться с «/» напрямую, потому что вы не определили какое-либо состояние для этого URL-адреса.

См. this fiddle.

+0

Спасибо! Оно работает. Тем не менее, я решил поместить сообщения в файл root.index, так что connectOutlets из root.index выполняется всегда. Поскольку я сделал это изменение, я получаю ошибку Не удалось найти состояние для пути. Проблема видна здесь: http://fiddle.jshell.net/DHN2u/5/ Я попытался добавить точку останова в функцию routePath, но, похоже, возвращает состояние. – gingman

+0

Я не понимаю, чего вы хотите достичь. Цель ConnectOutlet - создать представление и подключить его к контроллеру и ручкам {{outlet}}. Почему вы хотите делать это «всегда»? Вы можете найти полезную информацию [здесь] (https://emberjs-staging-new.herokuapp.com/guides/outlets#toc_the-router). –

+0

Я хочу иметь структуру, в которой я должен иметь абсолютно предыдущий результат. В корне, я хочу инициализировать представление. В почтовом индексе я хочу показать доступные сообщения. В пост-шоу я хочу показать одну запись, но я также хочу, чтобы список сообщений появлялся. Представьте, что у вас есть левая боковая панель со списком сообщений, и когда мы выбираем сообщение, у нас есть детали справа. Вот почему я хочу, чтобы моя post.show зависела от post.index, чтобы всегда иметь список сообщений, даже когда вы попадаете непосредственно для сообщения. Кстати, спасибо за ссылку. Это лучший пример, который я видел до сих пор. – gingman

Смежные вопросы