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 后立即更新。

4

2 回答 2

0

假设您的意思是收银员和客户使用不同的系统,这是行不通的。本地存储适用于浏览器,不适用于这些类型的交易。对于此类应用程序,您将需要使用托管在网络上的数据库。

于 2015-08-16T01:30:33.750 回答
0

您需要与其他控制器沟通,有些事情发生了变化,请更新您的数据。

这可以通过使用事件通信来实现,它允许您解耦您的逻辑。

你必须像这样调用/触发事件

$rootScope.$brodcast("myevent");

而另一方面,您必须像下面这样使用来监听触发的事件。

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

于 2015-08-16T01:42:52.013 回答