1

Мне показалось, что очень сложно справиться с флэш-сообщением, возвращенным из backend при работе с одностраничным приложением.Получение бэкэнд-флеш-сообщений от SPA-интерфейса

Say есть пять действий:

Логин, выход из системы, поиск, добавление, удаление.

каждое действие испускает сообщения (успешное или неудачное, может быть больше). в Non-SPA достаточно легко сделать что-то вроде backend.getFlash() в шаблоне, чтобы получить сообщение, сохраненное в сеансе.

Однако в SPA, если результаты возвращаются в JSON, и, конечно, бэкэнд может передать сообщение в js framework, скажем, angularjs. Но это действительно утомительно и не совсем гибко.

Есть ли у кого-нибудь идеи или опыта?

Благодаря

ответ

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> 
Смежные вопросы