Я пытаюсь обмотать голову вокруг ресурсов Ember, но я ударяю о стену. Глядя на гидах, как Rails + Ember.js я вижу желаемый способ объявления маршрута ресурсов является:Правильная декларация маршрута ресурса Ember.js
EmberTester.Router.map(function() {
this.resource('posts', function() {
this.resource('post', { path: ':post_id' });
});
});
Это кажется очень запутанным, имея создать вложенный ресурс для доступа отдельных элементов. Но помимо элемента стиля, реальной проблемой является поведение: такой маршрут, из того, что я могу видеть в журнале серверов, и на мониторе трафика браузера клиента оценивает крючки модели как для маршрута сообщений, так и для сообщения 'маршрут. То есть, учитывая модель крючков:
EmberTester.PostsRoute = Ember.Route.extend({
model: function() {
return EmberTester.Post.find();
}
});
EmberTester.PostRoute = Ember.Route.extend({
model: function(params) {
return EmberTester.Post.find(params.post_id);
}
});
при посещении URL /posts/1
обе модели крючки получить выполняется, поэтому сервер сначала попросил всех постов, а затем для POST_ID: 1. Мне, должно быть, не хватает очевидного, но я не могу сказать, что это такое.
Есть ли более простой способ объявить ресурсы в Ember? Должен ли я не объявить ресурсы и вместо этого использовать простые маршруты?
Мне не хватало важности выравнивания вложенности маршрутов с вложением вида. «Route» («posts»); route ('post', {path: '/ posts /: post_id'); 'подход отличается по смыслу от' resource ('posts', function() {route ('post' , {path: ': post_id'});}); '. Первый действует как ресурс Rails (перемещение от списка к деталям и обратно), но позже это правильный ресурс Ember для отображения в клиенте списка и выбранной детали * одновременно *. –