角型アプリケーションの開始時にコードを一度だけ実行する必要がある状況があります。私のアプリはcordova-pluginsを使ってビーコンを探して、それが見つかった場合は別の状態にリダイレクトされます。それ以外の場合はhome/splash
の状態にとどまります。角型アプリケーションの先頭でコードを一度実行する方法
現在、私はこのコードを「ホーム」コントローラで実行していますが、動作していますが、より洗練されたソリューションを望んでいました。私は単純なif/else
ステートメントと$scope
の変数を使用して状態の変更を制御しています。助けを事前に
homeCtrl.$inject = ['$scope', '$state', '$rootScope', '$ionicPlatform', '$cordovaBeacon'];
function homeCtrl($scope, $state, $rootScope, $ionicPlatform, $cordovaBeacon) {
$scope.skip = false;
$ionicPlatform.ready(function() {
$cordovaBeacon.requestWhenInUseAuthorization();
$rootScope.$on("$cordovaBeacon:didRangeBeaconsInRegion", function(event, pluginResult) {
if (!$scope.skip) {
$scope.skip = true;
$state.go('app.beacon');
}
});
$cordovaBeacon.startRangingBeaconsInRegion($cordovaBeacon.createBeaconRegion("abcdefg", "8484848484848484848"));
});
}
ありがとう:
は、ここに私のコントローラです。
@Manuあなたのデモのコントローラが起動するずっと前から、ドキュメントは準備ができていました。角度が起動前にブートストラップされていない – charlietfl