- EmberJS 教程
- EmberJS - 主页
- EmberJS - 概述
- EmberJS - 安装
- EmberJS - 核心概念
- 创建和运行应用程序
- EmberJS - 对象模型
- EmberJS - 路由器
- EmberJS - 模板
- EmberJS - 组件
- EmberJS - 模型
- EmberJS - 管理依赖项
- EmberJS - 应用关注点
- EmberJS - 配置 Ember.js
- EmberJS - Ember 检查器
- EmberJS 有用资源
- EmberJS - 快速指南
- EmberJS - 有用资源
- EmberJS - 讨论
EmberJS - 指定路由模型
可以通过在路由中定义模板名称来指定路由模型,该名称与数据模板的名称相同,并实现其模型挂钩。
Ember.Route.extend ({ model: function() { return { //value-1 },{ //value-2 },{..},{ //value-n }; } });
在上述代码中,value-1 到 value-n 变量用于存储在模板中调用的值。
下表列出了不同类型指定路由模型的取值−
序号 | 指定路由和说明 |
---|---|
1 | 动态模型
它定义了路由和动态片段,Ember 用它来访问 URL 中的值。 |
2 | 多个模型
可以使用 `RSVP.hash` 定义多个模型,它进一步使用对象来返回 promise。 |
示例
以下示例展示了如何指定一个用于显示数据的路由。创建一个新的路由,如前几章所述。现在,打开 `router.js` 文件,并使用以下代码来定义 URL 映射−
import Ember from 'ember'; //Access to Ember.js library as variable Ember import config from './config/environment'; //It provides access to app's configuration data as variable config //The const declares read only variable const Router = Ember.Router.extend ({ location: config.locationType, rootURL: config.rootURL }); Router.map(function() { this.route('specifyroute'); }); //It specifies Router variable available to other parts of the app export default Router;
创建 `application.hbs` 文件,并添加以下代码−
//link-to is a handlebar helper used for creating links {{#link-to 'specifyroute'}}Click here to see details{{/link-to}} {{outlet}} //It is a general helper, where content from other pages will appear inside this section
打开在 `app/templates/` 下创建的 `specifyroute.hbs` 文件,并使用以下代码−
<h2>List of Players</h2> <ul> //The <i>each</i> helper to loop over each item in the array provided from model() hook {{#each model as |player|}} <li>{{player}}</li> {{/each}} </ul> {{outlet}}
要构造 URL,需要实现模型来返回值−
import Ember from 'ember'; export default Ember.Route.extend ({ //The model() method returns the data which you want to make available to the template model() { return ['MS Dhoni', 'Steve Smith', 'Jason Roy','AB de Villiers','Kane Williamson']; } });
输出
运行 ember 服务器,你将收到以下输出−
当你在输出中点击链接,它将生成如下截图中的结果−
emberjs_router.htm
广告