Ember.js 在新的路由器API中,路由和资源之间有什么区别?
我试图理解Ember.js 在新的路由器API中,路由和资源之间有什么区别?,ember.js,ember-router,Ember.js,Ember Router,我试图理解路线和资源之间的区别。我对Resource的理解有助于将Route对象的子路径设置为另一个Route对象。但当我想到路径也会出现默认名称映射时,就不清楚了 请注意,从1.11.0开始,此.route仅用于代替此.resource。资料来源:* 请看一下这个以获得详细的解释 这是对这篇文章的粗略总结(我做了一些修改): 自从改变了资源和路线之后,很多人 对两者的含义以及它们如何影响命名感到困惑。 区别在于: 资源-一个事物(一个模型) 路线-与事物有关的东西 这意味着使用路由和资源的
路线
和资源
之间的区别。我对Resource
的理解有助于将Route
对象的子路径设置为另一个Route
对象。但当我想到路径也会出现默认名称映射时,就不清楚了
请注意,从1.11.0开始,此.route
仅用于代替此.resource
。资料来源:*
请看一下这个以获得详细的解释
这是对这篇文章的粗略总结(我做了一些修改):
自从改变了资源和路线之后,很多人
对两者的含义以及它们如何影响命名感到困惑。
区别在于:
- 资源-一个事物(一个模型)
- 路线-与事物有关的东西
App.Router.map(function() {
this.resource("posts", { path: "/" }, function() {
this.route("new", { path: "/new" });
});
this.route("another", { path: "/another" });
});
这将导致创建/使用以下路由:
- PostsRoute、PostsController、PostsView
- PostsIndexRoute、PostsIndexController、PostsIndexView
- PostsNewRoute、PostsNewController、PostsNewView
- 另一条路线、另一个控制器、另一个视图
App.Router.map(function() {
this.resource("posts", { path: "/" }, function() {
this.route("new", { path: "/new" });
this.resource("comments", { path: "/comments" }, function() {
this.route("new", { path: "/new" });
});
});
this.route("another", { path: "/another" });
});
在本例中,资源注释创建一个全新的名称空间。这意味着在这种情况下产生的路由如下如您所见,comments资源的路由、控制器和视图没有以父路由的名称作为前缀。这意味着将资源嵌套在另一个资源中会重置名称空间(=创建新名称空间)
- PostsRoute、PostsController、PostsView
- PostsIndexRoute、PostsIndexController、PostsIndexView
- PostsNewRoute、PostsNewController、PostsNewView
- CommentsRoute、CommentsController、CommentsView
- CommentsNewRoute、CommentsNewController、CommentsNewView
- 另一条路线、另一个控制器、另一个视图
此行为也在。中进行了解释。这在余烬指南中应该更清楚。一开始我肯定被这个概念弄糊涂了。一篇优秀文章的精彩总结。但是你最后的一句话没有意义:这个名称空间将有一个“which[…]
。”
是什么意思?这只是路线|控制器|视图的占位符吗?嘿,帕特里克,谢谢你指出这一点。我再也找不到线索了。因此,我添加了更复杂的带有嵌套资源的示例。我认为这一引文指的是这种情况,这一点更加清楚。谢谢你的额外示例,mavilein。你能详细说明一下你的示例和这个之间的区别吗:App.Router.map(function(){this.route(“posts”),{path:/”},function(){this.route(“new”);this.route(“comments”},function(){this.route(“new”);});this.route(“other”),{path:“/另一个”});});