我的理解是Ember 1.11.0在路由器中弃用了resource
,而只使用route
。根据我的阅读,两者之间的区别在于resource
创建了命名空间。请参阅:What is the difference between a route and resource in New Router API?
所以问题是我如何命名路由,以便在下面的示例中,我的注释路由,控制器和视图不以“帖子”作为前缀?
App.Router.map(function() {
this.route("posts", { path: "/" }, function() {
this.route("new", { path: "/new" });
this.route("comments", { path: "/comments" }, function() {
this.route("new", { path: "/new" });
});
});
});
答案 0 :(得分:3)
尝试将resetNamespace: true
传递给
this.route("comments", { path: "/comments", resetNamespace: true }, function() {
this.route("new", { path: "/new" });
});
答案 1 :(得分:0)
您可以对路径使用resetNamespace
选项,如下所示:
this.route('posts', {}, function() {
this.route('comments', {resetNamespace: true});
});
答案 2 :(得分:0)
目前,在没有使用this.resource
的情况下,使用公共API无法做到这一点,resetNamespace
已被正式弃用并计划在Ember 2.0中删除。使用.form-inline
不受官方支持,因为它是私有API,因此从技术上讲,它可能会在没有警告的情况下随时删除。
此问题的官方解决方案是重构您的应用程序以接受评论路由和模板位于帖子下。