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