在ember.js应用程序中,我们如何抛出应用程序错误(让它们在控制器 - 路径 - 应用程序层次结构中冒泡?)
我的用例与捕获非ember-data ajax错误并通过与ember数据错误相同的路径处理它们有关.
(即,当遇到来自非restful端点的错误时,允许该错误在应用程序中冒泡,类似于ember-data错误)
如果您想抛出错误,请使用throw new Error("Message");.
用户被重定向到error路由.
使用Promises,您可以对异常做出反应并处理它们.
请参阅:http://emberjs.com/api/classes/RSVP.Promise.html
Ember 有自己的EmberError类,它是 Javascript 错误类的子类。
import EmberError from '@ember/error';
export default Route.extend({
/* Pseudo code... */
model() {
if(/* something bad happens */) {
throw new EmberError('Oh, no! Something bad happened!');
}
},
});
Run Code Online (Sandbox Code Playgroud)
您可以在路线中的错误操作中使用它执行某些操作。如果你想让它冒泡,记得返回true。
actions: {
error(error) {
// do something
return true;
},
},
Run Code Online (Sandbox Code Playgroud)
Ember 会自动创建一个错误子状态和一个错误模板,您可以在其中显示有关错误的信息(无需重定向)。您可以这样显示错误application-error.hbs信息error.hbs:
<h1>{{model.name}} {{model.status}}</h1>
{{model.stack}}
Run Code Online (Sandbox Code Playgroud)
有关更多选项,请参阅Ember 子状态指南。
| 归档时间: |
|
| 查看次数: |
5598 次 |
| 最近记录: |