Я работаю над проектом типа todo с использованием Ember-CLI. Я использовал в качестве отправной точки изящной проекта todoMVC, но построенный с Эмбер-CLI с помощью этого руководства:Как добавить родительский проект к Ember-CLI TodoMVC?
http://blaketv.com/2014/10/03/ember-cli-todo-mvc-tutorial-0-0-47//
Моего вопроса, как бы я идти о добавлении проектов на родительском уровне. Таким образом, у нас был бы интерфейс типа master-detail, а на боковой панели у нас были бы проекты, и вы могли бы проектировать имена проектов CRUD, а затем, когда вы нажимаете на название проекта, вы видите todos в панели подробностей.
Я достаточно далеко определил отношения hasMany с моделями, но не могу понять, нужно ли мне несколько {{выходов}}. Очень сложно получить все на одной странице и работать.
Вот моя модель для проекта:
export default DS.Model.extend({
title: DS.attr('string'),
isCompleted: DS.attr('boolean'),
description: DS.attr('string'),
todos: DS.hasMany('todo', {async: true})
});
и модель несделанного:
import DS from 'ember-data';
export default DS.Model.extend({
title: DS.attr('string'),
isCompleted: DS.attr('boolean')
});
и главный маршрутизатор:
Router.map(function() {
this.resource('projects', function() {
this.route('new');
this.resource('project', { path: ':id' }, function() {
this.route('todos');
});
});
});
Проект маршрута:
export default Ember.Route.extend({
model: function(params) {
return this.store.find('project', params.id);
}
});
Index Маршрут:
export default Ember.Route.extend({
model: function() {
return this.store.find('project');
}
});
Todos Маршрут:
export default Ember.Route.extend({
model: function() {
return this.modelFor('todos');
}
});
Так project.hbs это, где это становится сложнее. Я создаю боковую панель с bootsrap, а затем этот выход показывает ToDos ....
<div class="projects-column col-md-3">
<div id="inbox-header"><span class="glyphicon glyphicon-inbox"></span> Inbox <span class="badge">42</span></div>
<div id="projects-header"><span class="glyphicon glyphicon-list-alt"></span> Projects</div>
<div id="forecast-header"><span class="glyphicon glyphicon-calendar"></span> Forecast</div>
<div id="log-header"><span class="glyphicon glyphicon-book"></span> Sessions Log</div>
</div>
<div>{{outlet}}</div>
Index.hbs:
<ul>
{{#each model}}
<li>{{link-to title "project.todos" this}}</li>
{{/each}}
Так что это выше, когда вы нажимаете на ссылку в заголовке проекта , он показывает ассоциированный todos .... но он отображает в левой панели ... это, вероятно, только что-то о макете CSS ... но что-то говорит мне, что есть очень простой способ сделать это, что мне не хватает ,
Тогда в /project/todo.hbs
мы имеем итерация
{{#each model.todos}}
<li>{{title}}</li>
{{/each}}
Я даже не очень адресованный делает CRUD для контроллеров или что-нибудь. Скорее всего, это выше смешно, и есть намного более элегантный способ приблизиться к этому ...
В принципе, я хочу родительский маршрут проектов, который я делаю CRUD с ..., а затем, когда вы просматриваете список ссылок на проект в sidebard и нажмите на один, вы попадете в правую панель обработанного рабочего приложения ToDoMVC.
Конечно, это только отправная точка для моего приложения. Скорее всего, если кто-то придумает элегантный способ сделать это, мы сможем превратить его в проект с открытым исходным кодом на github, чтобы другие могли учиться.
Я думаю, что куча расцветающих разработчиков Ember с трудом время с такого рода вещи, из-за многочисленных способов сделать это (отводы, обертоны, визуализации, визуализации в другие шаблоны, представления, компонентов и т.д.)
Не знаю, как это сделать дальше.
Обратите внимание, что демонстрационное приложение не отполировано или использует полный CRUD, только части, но я хотел просто получить маршруты и имена шаблонов там, чтобы вы могли посмотреть. –