ルートを特定のパスに変更する前に、Angular アプリケーションで promise を解決する必要があります。
va.config(['$routeProvider', function($routeProvider) {
$routeProvider.
when('/sendungen', {templateUrl: '../partials/sendungen.php', controller: 'OverviewCtrl',resolve: {
shipments: oc.fetchAllShipments
}}).
// ...
}]);
関数 fetchAllShipments():
oc.fetchAllShipments = function(shipment){
shipment.fetchAllShipments().then(function(promise){
shipment.allShipments = promise.data;
});
};
次に、コントローラーは、データを配送サービスから次の場所にコピーします$scope
。
va.controller('OverviewCtrl',function($scope,$http,shipment){
$scope.allShipments = shipment.allShipments;
});
アプリケーション内からルートを変更する限り、すべてが正常に機能しています。たとえば、メインページをロードしてから /sendungen に切り替えます
ただし、既にそのパスにいて、ページを更新することにした場合、データが解決される前にアプリケーションが読み込まれます。これはたまにしか発生せず、スクリプトの実行速度に依存しているようです。
どうすればその動作を防ぐことができますか?