0

我有以下用例。在服务器端错误上,我想向用户展示出了点问题(可能允许他们重试)。我可以使用弹出窗口或状态栏。同时我想保持当前视图打开,即用户应该留在发生错误的地方。

我想(如果我错了,请纠正我)我不应该使用 transitionTo(...) 因为这将取代我当前的观点。我的意图是在应用程序视图(最外面的模板/视图)中有一个通用功能,它可以动态添加/删除通知。

非常欢迎如何构建和修改 UI 的设计理念。

谢谢!

4

1 回答 1

1

我对这个确切用例的解决方案很简单。我在其中定义了一个事件处理程序,ApplicationRoute它收集这些异常并将它们注入到我的自定义中ExceptionsController,并exceptions在某处呈现到主应用程序模板中。

App.ApplicationRoute = Ember.Route.extend({
    events: {
        exceptionHandler: function (exception) {
            this.controllerFor('exceptions').addObject(exception);
        }
    }
});

ExceptionsController只是ArrayController.

App.ExceptionsController = Ember.ArrayController.extend();

最后在我的主应用程序模板中的某个地方我只是使用:

{{render 'exceptions'}}

我将把模板留给你想象。

编辑

然后,如果您想引发异常,只需使用send在控制器或路由中的任何位置触发操作。

this.send('exceptionHandler', exception);

例外是您的自定义模型。

此解决方案的优点是您可以在应用程序路由下方或任何控制器中的任何其他路由中覆盖处理程序。

于 2013-04-23T23:38:42.197 回答