this.route()和this.resource()有什么区别?

时间:2013-04-02 01:23:44

标签: javascript ember.js

我知道路由用于将URL映射到模板,但显然你可以用this.route或this.resource定义路由

App.Router.map(function() {
  this.route("about", { path: "/about" });
  this.route("favorites", { path: "/favs" });
});

App.Router.map(function() {
  this.resource('posts', { path: '/posts' }, function() {
    this.route('new');
  });
});

如果你想将子路由定义到一个路由,或者还有另一个我没有得到的理由,你是否只使用this.resource?

2 个答案:

答案 0 :(得分:8)

  

如果你想为一条路线定义子路线,或者还有其他理由我没有得到,你是否只使用this.resource?

这是基本想法。

  • resource = parent(通常是名词)
  • route = child(通常是动词)

另请注意,路由器始终指向当前路由。它无法转换为资源。幕后花絮自动生成一个'索引'在每个资源下面的路由,所以即使你定义这样的东西:

App.Router.map(function() {
  this.resource("about", { path: "/about" });
});

你最终得到了这个:

App.Router.map(function() {
  this.resource('about', { path: '/about' }, function() {
    this.route('index');
  });
});

答案 1 :(得分:0)

在ember 3.x中已弃用。没有更多的this.resource()