1

シングルページアプリケーションで作業しているときに、バックエンドから返されたフラッシュメッセージを処理するのは非常に難しいことがわかりました.

次の 5 つのアクションがあるとします。

ログイン、ログアウト、検索、追加、削除。

各アクションはメッセージを発行します (成功または失敗、それ以上の可能性があります)。Non-SPA では 、テンプレートでbackend.getFlash()などを実行して、セッションに保存されたメッセージを取得するのは簡単です。

ただし、SPA では、結果が JSON で返される場合、もちろんバックエンドはメッセージを js フレームワーク (angularjs など) に渡すことができます。しかし、それは本当に退屈で、柔軟性がまったくありません。

誰にもアイデアや経験がありますか?

ありがとう

4

1 に答える 1

2

あなたの質問から、あなたが本当に欲しいのは、すべてのアクションに対していくつかのメッセージを表示することであることがわかりました.たとえば、削除の場合、「正常に削除されました」などのメッセージを表示する必要があり、このメッセージを結果セットと一緒に送信したくない.あなたのバックエンド。

AngularJS ではservice、メッセージを表示するための を使用することでこれを実現できます。

以下に例を示します。

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 に答える