- EmberJS 教程
- EmberJS - 首页
- EmberJS - 概述
- EmberJS - 安装
- EmberJS - 核心概念
- 创建和运行应用程序
- EmberJS - 对象模型
- EmberJS - 路由
- EmberJS - 模板
- EmberJS - 组件
- EmberJS - 模型
- EmberJS - 管理依赖项
- EmberJS - 应用程序相关问题
- EmberJS - 配置 Ember.js
- EmberJS - Ember 监视器
- EmberJS 实用资源
- EmberJS - 快速指南
- EmberJS - 实用资源
- EmberJS - 讨论
EmberJS - 路由从拒绝中恢复
可以将 promise 拒绝对缓存到 model hook 中,该 hook 可以转换为 fulfills,这不会暂停转换。
语法
Ember.Route.extend ({ model() { //return the recovery message } });
示例
以下给出的示例演示了如果 model 拒绝 promise,转换将如何中止。创建一个新的路由并将其命名为 *promisereject*,然后打开 *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('recoveryrejection'); }); //It specifies Router variable available to other parts of the app export default Router;
使用以下代码打开在 *app/templates/* 下创建的 *application.hbs* 文件 -
<h2>Recovering from Rejection</h2> {{#link-to 'recoveryrejection'}}Click Here{{/link-to}}
当点击上述链接时,它将打开 recoveryrejection 模板页面。*recoveryrejection.hbs* 文件包含以下代码 -
{{model.msg}} {{outlet}}
现在打开 *app/routes/* 下创建的 *recoveryrejection.js* 文件,其代码如下 -
import Ember from 'ember'; import RSVP from 'rsvp'; export default Ember.Route.extend ({ model() { //returning recovery message return { msg: "Recovered from rejected promise" }; } });
输出
运行 ember 服务器,你将收到以下输出 -
当你点击链接时,promise 将被拒绝,它将显示恢复消息以继续转换 -
emberjs_router.htm
广告