- EmberJS 教程
- EmberJS - 主页
- EmberJS - 概览
- EmberJS - 安装
- EmberJS - 核心概念
- 创建并运行应用程序
- EmberJS - 对象模型
- EmberJS - 路由器
- EmberJS - 模板
- EmberJS - 组件
- EmberJS - 模型
- EmberJS - 管理依赖项
- EmberJS - 应用问题
- EmberJS - 配置 Ember.js
- EmberJS - Ember 检查器
- EmberJS 有用的资源
- EmberJS - 快速指南
- EmberJS - 有用的资源
- EmberJS - 讨论
路由器可将控件的属性映射到不同的查询参数键
控件有一个默认的查询参数属性,可将查询参数键附加到该属性,并将控件属性映射到不同的查询参数键。
语法
Ember.Controller.extend ({ queryParams: { queryParamName: "Values" }, queryParamName: null });
示例
下面的示例显示了如何将控件的属性映射到不同的查询参数键。创建一个新的路由并将其命名为 parammapcontrol,在 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 }); //Defines URL mappings that takes parameter as an object to create the routes Router.map(function() { this.route('parammapcontrol'); }); //It specifies Router variable available to other parts of the app export default Router;
在 app/templates/ 下创建的 application.hbs 文件中添加以下代码 −
<h2>Map a Controller's Property</h2> {{#link-to 'parammapcontrol'}}Click Here{{/link-to}}
单击上面的链接后,页面应打开一个输入框,以获取用户输入值。打开 parammapcontrol.hbs 文件并添加以下代码 −
//sending action to the addQuery method <form {{action "addQuery" on = "submit"}}> {{input value = queryParam}} <input type = "submit" value = "Send Value"/> </form> {{outlet}}
现在打开在 app/controllers/ 下创建的 parammapcontrol.js 文件,并添加以下代码 −
import Ember from 'ember'; export default Ember.Controller.extend ({ queryParams: [{ //mapping the string 'querystring' of the 'query's' query parameter query: "querystring" }], //initialy query's 'query parameter' will be null query: null, queryParam: Ember.computed.oneWay('query'), actions: { addQuery: function () { this.set('query', this.get('queryParam')); document.write(this.get('query')); } } });
输出
运行 ember 服务器,你将收到以下输出 −
单击链接时,它会生成一个输入框,你可以在其中输入值。此操作会将动作发送到 addQuery 方法 −
单击按钮后,它会将参数值显示在 URL 中“?”的右侧 −
emberjs_router.htm
广告