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);
});

そのため、ordercontroller が localStorage を更新するとすぐに posController が更新されます。

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 に答える