我想知道在 Ember.js 中设计显示同一数据模型的不同表示的最佳方式是什么。要问我的问题,我将使用Ember.JS 的 TodoMVC,它有 3 种 todo-data 表示:
- 任何待办事项,即整个待办事项列表(TodosIndexRoute)
- 仍处于活动状态且未完成的待办事项 (TodosActiveRoute)
- 已完成的待办事项 (TodosCompletedRoute)
目前,您可以通过单击列表底部的单词来查看这 3 个中的每一个,每次都指向不同的 URL。由于目前每个表示都有一个路由,因此每个表示都有其唯一的 URL 是有意义的。主页显示整个待办事项列表 (1.)。
A. 使主页显示所有 3 种表示形式(即仅在一个 URL 下)的最佳 ember.js 设计是什么?
B. 在主页和单独页面上显示所有 3 个的最佳设计怎么样?
目前我只是想出了一个笨拙的方法,并制作了这个修改过的 TodoMVC 应用程序,它在页面底部显示不完整和完整的列表。
在 index.html 中,我添加了新的命名列表:
{{#each todosactive itemController="todo"}}
{{ title }},
{{/each}}
在js路由中,我将TodosActiveRoute和TodosCompletedRoute复制到了TodoIndexRoute中,就是代码重复,很糟糕。
Todos.TodosIndexRoute = Ember.Route.extend({
setupController: function () {
var todos = Todos.Todo.find();
this.controllerFor('todos').set('filteredTodos', todos);
var todos_active = Todos.Todo.filter(function (todo) {
if (!todo.get('isCompleted')) {
return true;
}
});
this.controllerFor('todos').set('todosactive', todos_active);
...
});
我觉得我错过了一种优雅的方式,但我目前的 ember.js 知识非常有限。我应该使用{{partial}}、{{render}}、render还是其他什么?
我尝试了{{ partial }}和{{ render }},但我无法让它们显示任何数据。
感谢您的帮助。