Как двустороннее связывание localStorageService в AngularJs?

0

Я сейчас создаю приложение типа клиент-кассир, используя локальное хранилище браузера. Я понял, как использовать локальное хранилище, но он не обновляет сторону кассира, если я дам новый заказ со стороны клиента.

app.controller('posController', function($scope,localStorageService,Data,$rootScope,$window){
  console.log(localStorageService.get("placedOrder"));
  $scope.orders = localStorageService.get("placedOrder");
});

app.controller("orderController",function($scope,Data,localStorageService){
  var arr = localStorageService.get("placedOrder") || [];
  arr.push({"name":$scope.name,
                        "order": $scope.order,
                         "time": Data.time,
                         "email": Data.email
                       });
  localStorageService.get("placedOrder",arr)
  console.log(Data.placedOrder);
});

поэтому posController должен обновиться, как только ordercontroller обновит localStorage.

Теги:
local-storage
angular-local-storage

2 ответа

0

Предполагая, что вы имеете в виду, что кассир и клиент используют разные системы, это не сработает. Локальное хранилище предназначено для браузера и не предназначено для этих типов транзакций. Вам нужно будет использовать базу данных, размещенную в сети для этого типа приложений.

  • 0
    Я думаю, что понимаю вас, но я получил этот вопрос из интервью, и он говорит, что использовать localalstorage вашего браузера или использовать firebase ... Я не знаком с firebase .. Поэтому я подумал использовать это .. более того, когда я обновляюсь, я могу получить обновленное местное хранилище ..
  • 0
    Итак, при условии, что кассир и клиент используют один и тот же браузер ... сначала вам нужно инициализировать ваши заказы в хранилище. Поэтому создайте пустой массив, выполнив что-то вроде localStorageService.set ('cedOrder ', []); Прямо сейчас вы никогда не пишете в хранилище, потому что вы просто создаете пустой массив вместо использования localStorageService.
0

Вам нужно связаться с другим контроллером, чтобы что-то изменилось, пожалуйста, обновите свои данные.

Это возможно с помощью обмена событиями, это позволяет отделить вашу логику.

Вы должны вызвать/пожарить событие, подобное этому

$rootScope.$brodcast("myevent");

И другую сторону, которую вы должны использовать, как показано ниже, для прослушивания события.

$rootScope.$on("myevent",function(){....Update your other controller data... });

  • 0
    Эй, не могли бы вы расширить свой ответ, я видел нечто подобное, но не смог дать результатов, все равно хотел бы увидеть ваш ответ (:, спасибо!
  • 0
    Я пытался ответить, но мобильный стековый поток не позволил мне разместить неформатированный код и на мобильный сайт не удалось отформатировать. Я отвечу на ваш вопрос завтра только с машины. Я надеюсь, что пока вы найдете способ.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню