EmberJS - 路由器嵌套路由
您可以通过将回调传递给当前路由,在另一个模板中定义一个模板来定义嵌套路由。
语法
Router.map(function() { this.route('link-page', { path: 'pathTolinkpag' }, function() { this.route('link-page'); }); });
要创建嵌套路由,请运行以下命令 −
ember generate route route_name/another_route_name
示例
以下示例显示如何定义嵌套路由以在一个模板内显示另一个模板。打开在 app/templates/nestedroute 下创建的文件 .hbs。在这里,我们使用以下代码将文件创建为 fruits.hbs −
<h2>Fruits Page</h2> <ul> <li>Orange</li> <li>Apple</li> <li>Banana</li> </ul>
打开 router.js 文件来定义 URL 映射 −
import Ember from 'ember'; //以变量 Ember 的形式访问 Ember.js 库 import config from './config/environment'; //它以变量 config 的形式提供对应用程序配置数据的访问 //const 声明只读变量 const Router = Ember.Router.extend ({ location: config.locationType, rootURL: config.rootURL }); //定义以参数为对象来创建路由的 URL 映射 Router.map(function() { this.route('nestedroute', function() { this.route('fruits'); }); }); //它指定可供应用程序其他部分使用的路由器变量 导出默认路由器;
创建 application.hbs 文件并添加以下代码 −
{{#link-to 'nestedroute.fruits'}}fruits{{/link-to}} {{outlet}}
输出
运行 ember 服务器,您将收到以下输出 −
当您点击输出上的链接时,您将看到 URL 路由为 nestedroute/fruits,它将显示来自 fruits.hbs 的结果 −