默认错误模板在Ember不加载 [英] default error template on Ember not loading

查看:101
本文介绍了默认错误模板在Ember不加载的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我不知道我是否在做错事,但是在我的ApplicationRoute中,我有一些这样的东西:

 动作:{
error:function(error,transition){
var self = this;
metadata = {
'timeout':{
action:function(error,transition){
BootstrapDialog.alert({message:'Request Timeout!
}
},
'forbidden':{
action:function(error,transition){
self.transitionTo('companies');
}
},
'未授权':{
action:function(error,transition){
window.location.replace(error.responseJSON.redirect_url);
}
},
'bad gateway':{
action:function(error,transition){
throw new Error(Error);
}
}
};

if(error.statusText.toLowerCase()in metadata){
metadata [error.statusText.toLowerCase()]。action(error,transition);
}
}
}

我有一个错误。 hbs templete,我希望在坏网关错误被触发,但模板没有加载,有什么具体的方式来加载默认错误模板?


解决方案

如果您定义应用程序错误处理程序,则必须呈现错误模板。

  App.ApplicationRoute = Ember.Route.extend({
actions:{
error:function(){

this.render('error',{
into:'application'
});
}
}

}) ;

可以使用一个示例这里



您可以删除错误处理程序,并检查错误模板是如何由ember呈现的。 p>

I'm not sure if I'm doing something wrong, but at my ApplicationRoute I have something like that:

actions: {
    error: function(error, transition) {
        var self = this;
        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) {
                    throw new Error("Error");
                }
            }
        };

        if(error.statusText.toLowerCase() in metadata) {
            metadata[error.statusText.toLowerCase()].action(error, transition);
        }
    }
}

and I have a error.hbs templete, which I expect to be fired on 'bad gateway' error, but the template doesn't load, there is any specific way for me to load the default error template?

Thanks.

解决方案

If you define the application error handler, you must render the error template.

App.ApplicationRoute = Ember.Route.extend({
  actions: {
    error: function() {

      this.render('error', {
        into: 'application'
      });
    }
  }

});

An example is available here.

You could remove the error handler and check how the error template is rendered by ember.

这篇关于默认错误模板在Ember不加载的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆