"Новый" маршрут игнорируется в ember-app-kit

Мое приложение продолжает генерировать маршрут по умолчанию, даже если у меня есть маршрут, явно определенный. Я думаю, что я упускаю из виду соглашение об именах, но поиск в Google, stackruing, обсуждения.emberjs.com и старые ругательства на компьютере еще никуда меня не приводят.

приложение / router.js

var Router = Ember.Router.extend();    

Router.map(function(){                 
  this.resource('things', function() {
    this.route('new');                 
  });                                  
});                                    

export default Router;

приложение / маршруты / things_new.js

var ThingsNewRoute = Em.Route.extend({     
  model: function() {                       
    window.console.log('hello hello');      
    return this.store.createRecord('thing');
  }                                         
});                                         

export default ThingsNewRoute;             

Посещение http://localhost:8000/#/things/new шаблон хорошо отрисовывается и ошибок нет. Выход из журнала Ember:

generated -> route:application Object {fullName: "route:application"} ember.js:415
generated -> route:things Object {fullName: "route:things"} ember.js:415
generated -> route:things.new Object {fullName: "route:things.new"} ember.js:415
generated -> controller:application Object {fullName: "controller:application"} ember.js:415
Rendering application with default view <(subclass of Ember.View):ember267> Object {fullName: "view:application"} ember.js:415
generated -> controller:things Object {fullName: "controller:things"} ember.js:415
Rendering things with default view <Ember._MetamorphView:ember283> Object {fullName: "view:things"} ember.js:415
generated -> controller:things.new Object {fullName: "controller:things.new"} ember.js:415
Rendering things.new with default view <Ember._MetamorphView:ember293> Object {fullName: "view:things.new"} ember.js:415
Transitioned into 'things.new' ember.js:415
Ember Debugger Active

Проблема заключается в следующем:

generated -> route:things.new Object {fullName: "route:things.new"} ember.js:415

Это не должно генерировать это, потому что я определяю это. Есть ли какое-то соглашение об именах файлов, которому я не следую?

Также глядя на Ember Inspector в Chrome. В разделе "Собственные свойства" в разделе ThingsNewRoute:

routeName: things.newSend
controller: (generated things.new controller)
lastRenderedTemplate: things.new
teardownOutletViews: [ function() { ... } ]

2 ответа

Решение

В ember-app-kit для правильного выбора маршрутов распознавателем вы должны поместить их в подкаталоги.

Например, для вашего случая использования, имеющего карту маршрутизатора, такую ​​как:

Router.map(function(){                 
  this.resource('things', function() {
    this.route('new');                 
  });                                  
}); 

Структура каталогов должна быть:

app/
   ...
   routes/
      things/
        new.js
        ...

Поскольку распознаватель ожидает маршрут ThingsNewRoute быть найденным в app/routes/things/new.js

Надеюсь, поможет.

ThingsNewRoute должно быть свойством объекта вашего приложения. Таким образом, объявление будет выглядеть так:

App.ThingsNewRoute = Em.Route.extend({
    ....
})

Заменить имя App с переменной, которой вы назначили свой Ember.Application.create();

Другие вопросы по тегам