gpt4 book ai didi

javascript - Ember route.connections 在渲染错误事件时未定义

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:41:22 27 4
gpt4 key购买 nike

我想呈现有关服务器错误的消息。我创建了显示错误消息 View 的特殊路由。同时我不希望重定向到该路由的 url 以便能够重新加载当前页面。所以我决定在应用程序路由中使用函数渲染。

// application/route.js
actions: {
error: function(error, transition) {
if (error.errors) {
return this.render('server-error.internal');
}
return true;
}
}

当我从正确加载的其他应用程序路由中重定向错误页面时,它工作正常。当我手动输入错误的页面 url 时,我会出错

Cannot read property 'push' of undefined

正如我所检查的那样,它是关于名为“连接”的未初始化路由属性的。我在github上发现了类似的问题,但找不到解决方案。我将不胜感激。

我正在使用 ember-cli:2.4.3

最佳答案

我找到了解决此问题的方法,这可能对遇到类似问题的人有用。我没有使用 error event,而是使用了 error substateSee documentation .理论上它应该工作相同,但在这种情况下它不会。

我创建了新路由 error 并在 renderTemplate 方法中设置目标 url,检查错误类型(使用自定义函数)并呈现正确的模板:

// app/pods/error/route.js
export default Ember.Route.extend({
renderTemplate: function(controller, model) {
const transition = this.get('router.router.activeTransition');
const url = this.get("router").generate(transition.targetName);
this.get("router").router.updateURL(url);

if (model.errors) {
if (is404Error(model.errors)) {
return this.render('server-error.not-found');
} else if (is500Error(model.errors)) {
return this.render('server-error.maintenance');
}
}
return true;
}
});

关于javascript - Ember route.connections 在渲染错误事件时未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37971499/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com