如何保持应用程序工作,即使模型未能加载烬
How to keep app working even if model fails to load on Ember
所以,在我的ApplicationRoute
上,我正在加载一个模型来加载整个应用程序常见的一些数据。工作流程如下:
App.ApplicationRoute = Ember.Route.extend({
model: function() {
return this.store.find('config');
},
actions: {
error: function(error, transition) {
var self = this,
renderErrorPage = function(template, disableMenu) {
self.render(template, {
into: 'application'
});
if(disableMenu) {
$('.menu > a').addClass('disable-menu'); // disable menu links
}
},
metadata = {
'timeout': {
action: function(error, transition) {
BootstrapDialog.alert({message: 'Request Timeout!'});
}
},
'forbidden': {
action: function(error, transition) {
self.transitionTo('companies');
}
},
'unauthorized': {
action: function(error, transition) {
window.location.replace(error.responseJSON.redirect_url);
}
},
'bad gateway': {
action: function(error, transition) {
renderErrorPage('error', true);
}
},
'internal server error': {
action: function(error, transition) {
renderErrorPage('error', true);
}
},
'not found': {
action: function(error, transition) {
renderErrorPage('404', false);
}
}
};
if(error.statusText.toLowerCase() in metadata) {
metadata[error.statusText.toLowerCase()].action(error, transition);
}
}
}
});
所以,如果用户没有登录,他得到一个unauthorized
401错误,重定向到登录页面,如果他登录了,但仍然没有访问这个应用程序,他得到一个forbidden
403错误,只是做一个过渡到/#/companies/
,他将注册他的公司,然后有权限访问完整的应用程序。
我的问题是:这个过渡到companies
没有发生,因为模型无法加载,我不知道如何修复它。
在我看来,你可能应该找到一种不同的方式来加载配置,而不是通过请求一个经过身份验证的API(或者至少为不需要身份验证的路由提供一个开放版本,比如这个错误页面)。你可以只使用
if (isAuthenticated) {
return this.store.find('config');
}
…然后将isAuthenticated
设置在auth进程的某个位置
相关文章:
- 如何将本地json数据加载到Extjs数据模型中
- 有没有比在app.js上绑定模块名称更好的方法来动态加载视图模型和视图以显示模态
- ThreeJS访问加载的obj模型中的对象
- Sails.js:我可以将一些服务/模型打包为npm并在Sails.jss应用程序中加载npm吗
- 如何在three.js中加载指定文件内容而非路径的三维模型
- 如何加载一次模型并将其存储到变量中
- 加载 .dae 模型时不显示纹理
- Webgl 加载 json 模型问题
- 延迟 AngularJS 路由更改,直到加载模型以防止闪烁
- 如何在打开模型时动态加载控制器文件
- 加载模型与三个.js
- 三.js:如何从Web-worker加载动画.json模型
- 如何在角度 2 中向动态加载的子组件提供父组件的模型
- EmberJS:如何在同一条路径上加载多个模型
- 挖空映射:加载数据后,父模型中的计算可观察量不会更新
- AngularJS-关闭tile并从ngRepeat指令AngularJS中的模型加载新视图
- 在Ember.js中渲染应用程序之前,正在等待模型加载
- 使用Ajax从数据库/模型加载数据
- 当我把模型加载到three.js中时,我怎样才能提高性能呢?
- Kendo UI下拉菜单从模型加载数据