EmberJS - 定义路由
路由器将当前 URL 与负责显示模板、加载数据和设置应用程序状态的路由进行匹配。路由器 map() 方法用于定义 URL 映射,该映射传递一个以参数为对象的函数来创建路由。 {{ link-to }}}i> 帮助程序用于导航路由器。
要定义路由,请在项目文件夹中使用以下命令 −
ember generate route route-name
它会创建路由文件 app/routes/name_of_the_route.js、路由模板 app/templates/name_of_the_route.hbs 以及单元测试文件 tests/unit/routes/route_name_of_the_test.js。
您可以使用路由器的 map() 方法定义 URL 映射。可以使用 this 值调用该方法来创建用于定义路由的对象。
Router.map(function() { this.route('link-page', { path: '/path-to-link-page' }); . . this.route('link-page', { path: '/path-to-link-page' }); });
以上代码显示了如何使用路由器图链接不同的页面。它以 linkpage 名称和路径作为参数。
下表显示了不同类型的路由 −
S.No. | 路由 &描述 |
---|---|
1 | 嵌套路由
通过在另一个模板内定义模板来指定嵌套路由。 |
2 | 动态段
它以 route() 方法中的 : 开头,后跟标识符。 |
3 | 通配符/通配符路由
通配符路由用于匹配多个 URL 段。 |
示例
以下示例显示如何定义显示数据的路由。打开在 app/templates/ 下创建的 .hbs 文件。在这里,我们使用以下代码将文件创建为 routedemo.hbs −
<h2>My Books</h2> <ul> <li>Java</li> <li>jQuery</li> <li>JavaScript</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('routedemo'); }); export default Router;
创建 application.hbs 文件并添加以下代码 −
//link-to 是用于创建链接的把手助手 {{#link-to 'routedemo'}}BookDetails{{/link-to}} {{outlet}} //It is a general helper, where content from other pages will appear inside this section
输出
运行 ember 服务器,您将收到以下输出 −
![Ember.js Defining Routes](/emberjs/images/emberjs-router-defining-routes.jpg)
点击输出的链接,会生成如下图所示的结果 −
![Ember.js Defining Routes](/emberjs/images/emberjs-router-defining-routes1.jpg)