EmberJS - 路由器从拒绝中恢复
承诺拒绝可以缓存在模型钩子中,可以将其转换为不会停止转换的履行。
语法
Ember.Route.extend ({
model() {
//返回恢复消息
}
});
示例
下面给出的示例显示了如果模型拒绝承诺,转换将如何中止。创建一个新路由并将其命名为 promisereject,然后打开 router.js 文件以定义 URL 映射 −
import Ember from 'ember';
//以变量 Ember 的形式访问 Ember.js 库
import config from './config/environment';
//它以变量 config 的形式提供对应用程序配置数据的访问
//const 声明只读变量
const Router = Ember.Router.extend ({
location: config.locationType,
rootURL: config.rootURL
});
//定义 URL 映射,以参数作为对象来创建路由
Router.map(function() {
this.route('recoveryrejection');
});
//它指定可供应用程序其他部分使用的 Router 变量
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() {
//返回恢复消息
return {
msg: "Recovered from rejected promise"
};
}
});
输出
运行 ember 服务器,您将收到以下输出 −
当您点击链接时,承诺将被拒绝,它将显示一条恢复消息以继续转换 −

emberjs_router.html