如何在AngularJs中双向绑定localStorageService



我现在正在使用浏览器的本地存储构建一个客户-收银员类型的应用程序。我知道如何使用本地存储,但如果我从客户端发出新订单,它不会更新收银端。

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。

假设您的意思是收银员和顾客使用不同的系统,这将不起作用。本地存储是用于浏览器的,而不是用于这些类型的事务。对于这种类型的应用程序,您需要使用托管在网络上的数据库。

您需要与其他控制器通信,如果有更改,请更新您的数据。

可以使用事件通信,它允许你解耦你的逻辑。

你必须像这样调用/fire事件

$rootScope.$brodcast("myevent");

另一边你必须使用下面的方法来监听触发事件

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

最新更新