- EmberJS 教程
- EmberJS——主页
- EmberJS——概述
- EmberJS——安装
- EmberJS——核心概念
- 创建和运行应用程序
- EmberJS——对象模型
- EmberJS——路由
- EmberJS——模板
- EmberJS——组件
- EmberJS——模型
- EmberJS——管理依赖项
- EmberJS——应用程序顾虑
- EmberJS——配置 Ember.js
- EmberJS——Ember 检查器
- EmberJS 有用资源
- EmberJS——快速指南
- EmberJS——有用资源
- EmberJS——讨论
EmberJS——加载/错误子状态
Ember.js 通过利用错误和加载子状态,重写了路由之间的异步定制转换。
语法
Ember.Route.extend ({ model() { //code here } }); Router.map(function() { this.route('path1', function() { this.route('path2'); }); });
示例
下面给出的示例演示了在加载路由时发生的加载/错误子状态的使用。创建一个新路由并将其命名为 loaderror,并使用以下代码打开 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('loaderror', function() { this.route('loaderr'); }); }); //It specifies Router variable available to other parts of the app export default Router;
打开在 app/routes/ 下创建的文件loaderror.js ,代码如下 -
import Ember from 'ember'; export default Ember.Route.extend ({ model() { return new Ember.RSVP.Promise(function (resolve, reject) { setTimeout(function () { resolve({}); }, 1500); }); } });
打开在 app/templates/ 下创建的文件 application.hbs ,代码如下 -
{{outlet}}
打开文件 index.hbs 并添加以下代码 -
{{link-to 'loaderror' 'loaderror'}} <small>(this link displays the 'loading' route/template correctly)</small> {{outlet}}
当您单击 loaderror 链接时,页面应在正在加载的状态下打开。因此,创建一个 Loading.hbs 文件来指定正在加载的状态 -
<h2 style = "color: #f00;">template: loading</h2>
现在打开显示错误消息的文件 loaderror.hbs -
<h2>--error--!</h2> {{link-to 'loaderror.loaderr' 'loaderror.loaderr'}} <small>(doesn't display the 'loading' route/template, because 'loaderror/loading' does not exist!!!</small> {{outlet}}
输出
运行 ember 服务器,您将收到以下输出 -
当您单击链接时,它将显示模板加载消息 -
然后,当在转换期间遇到错误时,它会显示一个错误子状态 -
emberjs_router.htm
广告