Ember.js 如何在ember RC3中动态修改视图
我有以下用例。 在服务器端错误方面,我想向用户显示出一些错误(可能允许他们重试)。我可以使用弹出窗口或状态栏。 同时,我希望保持当前视图处于打开状态,即用户应留在发生错误的位置 我想(如果我错了,请纠正我)我不应该使用transitiono(…),因为这将取代我当前的视图。我的目的是在应用程序视图(最外层的模板/视图)中拥有一个通用功能,动态添加/删除通知 如何构建和修改用户界面的设计思想非常受欢迎Ember.js 如何在ember RC3中动态修改视图,ember.js,Ember.js,我有以下用例。 在服务器端错误方面,我想向用户显示出一些错误(可能允许他们重试)。我可以使用弹出窗口或状态栏。 同时,我希望保持当前视图处于打开状态,即用户应留在发生错误的位置 我想(如果我错了,请纠正我)我不应该使用transitiono(…),因为这将取代我当前的视图。我的目的是在应用程序视图(最外层的模板/视图)中拥有一个通用功能,动态添加/删除通知 如何构建和修改用户界面的设计思想非常受欢迎 谢谢 我对这个确切用例的解决方案很简单。我在我的ApplicationRoute中定义了一个事件
谢谢 我对这个确切用例的解决方案很简单。我在我的
ApplicationRoute
中定义了一个事件处理程序,它收集这些异常并将它们注入到我的自定义exceptioncontroller
中,异常
被呈现到主应用程序模板的某个地方
App.ApplicationRoute = Ember.Route.extend({
events: {
exceptionHandler: function (exception) {
this.controllerFor('exceptions').addObject(exception);
}
}
});
例外控制器
只是阵列控制器
的扩展
App.ExceptionsController = Ember.ArrayController.extend();
最后,在我的主应用程序模板中,我只使用了:
{{render 'exceptions'}}
我将把模板留给你想象
编辑
然后,如果要引发异常,只需使用send
在控制器或路由中的任何位置触发操作即可
this.send('exceptionHandler', exception);
其中例外是您的自定义模型
此解决方案的优点是,您可以覆盖应用程序路由下的任何其他路由或任何控制器中的处理程序。谢谢!这真的很有帮助。