- EmberJS 教程
- EmberJS - 首页
- EmberJS - 概述
- EmberJS - 安装
- EmberJS - 核心概念
- 创建并运行应用程序
- EmberJS - 对象模型
- EmberJS - 路由器
- EmberJS - 模板
- EmberJS - 组件
- EmberJS - 模型
- EmberJS - 管理依赖项
- EmberJS - 应用程序问题
- EmberJS - 配置 Ember.js
- EmberJS - Ember Inspector
- EmberJS 有用资源
- EmberJS - 快速指南
- EmberJS - 有用资源
- EmberJS - 讨论
路由器默认值和反序列化
你可以为控制器查询参数属性设置默认值,而这个值不会被序列化到网址中。
语法
Ember.ArrayController.extend ({ queryParams: 'queryParameterName', queryParameterName: defaultValue });
示例
下面给出的示例指定将默认值设置为查询参数。创建一个新路由并将其命名为 defaultvaluedeserialize 并打开 router.js 文件以定义网址映射 −
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('defaultvaluedeserialize'); }); //It specifies Router variable available to other parts of the app export default Router;
打开在 app/templates/ 下创建的文件 application.hbs,其中包含以下代码 −
<h2>Default Values and Deserialization</h2> {{#link-to 'defaultvaluedeserialize'}}Click Here{{/link-to}}
当你单击上面的链接时,页面应该会打开一个输入框,用于输入用户输入的值。打开 defaultvaluedeserialize.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/ 下的 defaultvaluedeserialize.js 文件,其中包含以下代码 −
import Ember from 'ember'; export default Ember.Controller.extend ({ //assigning query parameter name as 'query' queryParams: 'query', //assigning the query param to a default value as 1 query: 1, queryParam: Ember.computed.oneWay('query'), actions: { addQuery: function () { this.set('query', this.get('queryParam')); document.write(this.get('query')); } } });
输出
运行 Ember 服务器,你会收到以下输出 −
当你单击链接时,它会显示在输入框中指定的默认值 −
在单击按钮后,它将显示默认值,并且不会将其序列化到网址中 −
emberjs_router.htm
广告