我有这条路线
this.resource('todos', { path: '/todos' }, function() {
this.route('todo', { path: '/todo/:todo_id' });
this.route('new', {path: '/todo/new'});
});
这是路由 todo 的控制器
App.TodoRoute = Ember.Route.extend({
model: function(params) {
return Todo.find(params.todo_id);
}
});
当我直接加载/todos,然后按预期加载一个todo,但是当我尝试直接加载/todo/idOfTheTodoHere 时,没有加载任何内容。
我必须向控制器添加一些东西,直到找到所有数据才能加载模板?
我会放在这里完整的路线
App.Router.map(function() {
this.resource('app', { path: '/' }, function () {
this.route("about");
this.resource('todos', { path: '/todos' }, function() {
this.route('todo', { path: '/todo/:todo_id' });
this.route('new', {path: '/todo/new'});
});
});
});
//This works and finds All todos
App.TodosRoute = Ember.Route.extend({
model: function () {
return App.Todo.find();
}
});
App.TodosNewRoute = Ember.Route.extend({
model: function () {
return App.Todo.create;
}
});
App.TodosTodoRoute = Ember.Route.extend({
model: function(params) {
console.log(App.Todo.find();
return Todo.find(params.todo_id);
}
});
现在,当我转到 /#/routes 时,所有 todo 都正确显示,我可以创建一个新的,但是当我单击单个 todo 以显示它并且路由更改为 /#/todos/todo/ID 时,如果我重新加载浏览器模板什么也没显示,看起来像直接在路由上加载模型没有返回任何内容。找到的唯一参数是 id,其他属性为空。
所以在模板 todo 如果我有这个属性
{{id}} - {{title}}
仅显示 id,如果我检查控制台
model: function(params) {
console.log(App.Todo.find();
返回模型id,其他值未定义