什么是Ember.js中的路由和路由器的区别?

3
什么是Emberjs中的路由和路由器之间的区别?如果可能的话,我希望有一个可实现的解释。

你是否询问过“路由器”和“路由”或“资源”和“路由”的区别? - Bek
区别如在相当全面的Ember文档中所述。请搜索“ember router”和“ember route”。 - user663031
2个回答

3

路由器 - Ember 应用程序将拥有一个路由器,它管理路由之间的转换,并且包含所有路由的地图。您可以按照以下方式指定路由映射:

App.Router.map(function(){
  this.route('post', { path: '/post/:post_id' }, function() {
    this.route('edit');
    this.route('comments', { resetNamespace: true }, function() {
      this.route('new');
    });
  });
});

从中,Router 能够识别路由的结构和接受的参数。当您在浏览器中导航到特定的路径/URL时,它会激活相应的RouteEmber Router文档 Route - 对于每个路径/路由,您将拥有一个Route对象,当您在浏览器中更改路径/ URL时,相应的Route将被激活并设置所有相关的东西(控制器,模板),这些东西与该路由相关联(通常具有相同的名称)。Ember Route文档 了解更多

-2

这两者之间的实际区别在于 resource 可能包含其他路由,而 route 不能。此外,当它看到您有子路由时,this.resource 会自动创建一个索引路由。

App.Router.map(function() {
  this.resource('records', function() {
    // this.route('index') is created automatically in here
    this.route('new');
  });

  this.route('about');
});

虽然您可以始终使用this.resource并使事情正常工作,但是this.route明确地创建路由器叶状态,因此将为您的应用程序提供更精确和高效的状态图。


1
我认为问题是routerouter之间的区别,而不是routesresources之间的区别。 - Bek
1
如果你要回答这个问题(这不是被问到的问题),你可以指出资源正在被弃用。 - user663031

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接