完成TodoMVC教程后,我在Todo模型中添加了一个details字段,当我单击todo时,我希望在页面的其他位置显示该字段。当我在todos/ linkTo模板中单击此索引时,出现此问题
{{#linkTo 'todo' this}}{{title}} {{/linkTo}}我希望将其呈现到todos路由中名为"details“的命名出口,同时保留默认出口(因为这是呈现todos/index的位置)。问题是todo模板呈现到了正确的outlet,但它也破坏了todo的默认outlet中以前的所有内容。我不确定为什么它要销毁旧出口的内容,因为我在路由中指定了正确的内容。
我当前的路由器如下所示:
Todos.Router.map(function () {
this.resource('todos', { path: '/' }, function () {
this.route('active');
this.route('completed');
this.resource('todo', {path: ':todo_id'});
});
});我的TodoRoute在这里
Todos.TodoRoute = Ember.Route.extend({
renderTemplate: function() {
this.render( {
outlet: "details",
into: "todos"
});
}
})发布于 2013-09-27 21:45:51
据我所知,除了在父路由模板中没有任何{{outlet}},并使用{{render}}呈现它们之外,没有一种方法可以让兄弟路由不会互相破坏。然后,在它们的路由中,忽略renderTemplate挂钩,并使用model或setupController在{{render}}帮助程序用来指定要呈现的记录的层次结构中更高的控制器上设置属性。
发布于 2013-11-06 08:44:12
我认为你需要做this.render()来把todo模板放入你的应用程序模板的主出口。然后,进入详细信息出口的后续render()应该可以工作。
https://stackoverflow.com/questions/18110495
复制相似问题