如何在Ember 1.11.0中命名一个ember路由

时间:2015-05-18 11:25:33

标签: ember.js

我的理解是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" });
    });
  });
});

3 个答案:

答案 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,因此从技术上讲,它可能会在没有警告的情况下随时删除。

此问题的官方解决方案是重构您的应用程序以接受评论路由和模板位于帖子下。