Ember & ember data: как использовать несколько динамических сегментов с несколькими моделями?

Я пытаюсь создать средство отслеживания проблем github с данными ember и ember. Доступ к API github осуществляется через сервер узлов (и работает нормально), но у меня возникают проблемы при попытке использовать динамические сегменты ember, и я не уверен, как лучше всего структурировать маршруты и модели.

Как мне структурировать маршруты и модели, если я хочу, чтобы URL-адрес был /user/repo/issue?

Я пробовал разные комбинации динамических сегментов и ресурсов/маршрутов...

this.resource('user', {path: ':user'}, function(){
  this.resource('repo', {path: ':repo'}, function(){
    this.resource('issue', {path: ':issue_id'});
  });
}); // 1

this.resource('repo', {path: ':userAndRepo'}, function(){
  this.resource('issue', {path: ':issue_id'});
}); // 2

this.resource('repo', {path: ':userAndRepo'});
this.resource('issue', {path: ':userAndRepo/:issue_id'}); //3

Но я не могу заставить его работать гладко. Я рву бороду, пытаясь понять это.

Самое близкое, что я получил, это комбинированный сегмент для :userAndRepo, но для любых ссылок, которые у меня были в моем шаблоне задач, мне приходилось явно устанавливать эту модель для IssuesController, чтобы моя ссылка была {{#link-to 'issues' userAndRepo issue}} Кроме того, мой API подвергался атакам. каждый раз, когда я переходил с дочернего маршрута issue обратно на родительский маршрут repo.

Мы будем очень признательны за любые идеи или предложения. Извините, если я не очень хорошо объяснил.


person Iest    schedule 05.10.2013    source источник


Ответы (1)


Номер 1 - правильная реализация. Вот простой пример с вложенными ресурсами (я был ленив и просто использовал pojos, но вы можете видеть, когда срабатывают хуки модели).

http://emberjs.jsbin.com/EWogUdE/36/edit

http://emberjs.jsbin.com/EWogUdE/36#/

 App.Router.map(function () {
   this.resource('people', function(){
     this.resource('person', {path:':name'}, function(){
       this.resource('dog', {path:':dogname'});
     });
   });
 });
person Kingpin2k    schedule 06.10.2013