1

我发现在使用单页应用程序时很难处理从后端返回的 flash 消息。

假设有五个动作:

登录、注销、搜索、添加、删除。

每个动作都会发出消息(成功或失败,可能更多)。在非 SPA 中,很容易在模板中执行类似 backend.getFlash()的操作来获取存储在会话中的消息。

但是,在 SPA 中,如果结果以 JSON 格式返回,那么后端当然可以将消息传递给 js 框架,比如 angularjs。但这真的很乏味,而且一点也不灵活。

有没有人有任何想法或经验?

谢谢

4

1 回答 1

2

从您的问题中,我了解到您真正想要的是为每个操作提供一些消息,例如对于删除,您需要显示一条消息,例如“已成功删除”,并且您不希望此消息与来自的结果集一起发送你的后端。

service在 AngularJS 中,您可以通过显示消息来实现这一点。

这是一个例子;

在 AngularJS 中创建这样的服务

app.factory('FlashService', function ($rootScope) {

    return {
        show: function (message) {
            $rootScope.flash = message;
            return message;
        },
        clear: function () {
            $rootScope.flash = '';
            return null;
        }
    };
});

这里FlashService是您正在创建的服务的名称,不要担心名称,您可以选择任何名称。

要使用此服务,请将其注入您想要的任何地方;

var app = angular.module("your app name", []);

app.controller("MyCtrl", function(FlashService) { 
   FlashService.show("I am here");
});

并在你的html中使用它

<div id="flash">{{flash}}</div>
于 2013-10-01T07:21:09.610 回答