Я строю приложение для управления проектами с тремя основными моделями:Ember нетривиальных маршрутизатор с несколькими BelongsTo отношений
Client
, Project
, Task
Мои модели (отношений) только
let client = DS.Model.extend({
projects: DS.hasMany('project');
});
let project = DS.Model.extend({
client: DS.belongsTo('client'),
tasks: DS.hasMany('task')
});
let task = DS.Model.extend({
project: DS.belongsTo('project')
});
Требования:
- Показать список всех клиентов
- Отображения списка всех проектов клиента (не вложенных в UI)
- списка отображения выполняемых задач проекта (не вложенных в UI)
- детали Отображать задачу (а не вложенные в UI)
- Отображение списка всех проектов для всех клиентов (да, не вложенная)
Я не уверен, если это неправильно REFL ЭСТ модели отношений по вложенности ресурсов как таковых:
/** Creates a nested UI by default: */
this.route('clients', function() {
this.route('projects', function() {
this.route('tasks', function() {});
});
});
Я не хочу, чтобы мой пользовательский интерфейс, чтобы быть вложенными и показать все проекты ниже всех клиентов и т.д.
Есть ли лучший способ обработки ресурсов, чем это?
// All projects for all clients
this.route('projects', function(){});
// Client's projects
this.route('clientProjects', { path: 'client/:id/projects' }, function() {});
Для тех из нас, менее знакомы с Ember * волшебной *, возможно, стоит отметить, что если вы не создавать определенные шаблоны для индекса клиентов, проектов и задач, вы увидите, что по умолчанию вложенный пользовательский интерфейс должен избегать. –
Я добавил дополнительную информацию о шаблонах - я думаю, что когда вы говорите «поведение UI, чтобы избежать», это звучит так, как будто это плохо. Это то, что вы решили, что не хотите. Другие могут найти такое поведение желательным. –
Отличный момент Майк! Очень ценю все. На этой точке кривой обучения Ember нет тонны индексированных ресурсов, поэтому ваша помощь была огромной. –