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 服务器,您将收到以下输出 −

Ember.js nesting Routes

当您点击输出上的链接时,您将看到 URL 路由为 nestedroute/fruits,它将显示来自 fruits.hbs 的结果 −

Ember.js 嵌套路由

emberjs_router.html