'ngDialog.closed'イベントをリッスンすると、複数回発生していることが判明しました。一度しかダイアログを開いていないので、同じモーダルを閉じると仮定すると、このイベントは1回だけ起動する必要があります。以下のようなので、そこのアプリケーションにまたがる複数のモーダルがあり、我々は$ rootScopeに取り付けることによって、この特定のモーダルのために聞く:ngDialog閉鎖されたイベントの発生回数(AngularJS)
$rootScope.$on('ngDialog.closed', function (e, $dialog) {
console.log("CLOSED TEHE MODAL", $dialog);
console.log("EVENT", e);
if($rootScope.modalFinished && localStorage.getItem("tourComplete") !== "true"){
$rootScope.modalFinished = false;
console.log("THIS IS LOCAL STORE:", localStorage.getItem("tourComplete"));
$scope.CallMe();
}
});
我々は$ rootScope経由で聞いている理由は、1から、この「閉」イベントを渡すことですモデラーの前に既にロードされている別のコントローラー(ホーム画面)に移動します。
「ngDialog.closed」イベントでは、複数のイベントが発生していることがわかりました(通常、モーダルの終了につき2〜3回まで)。我々は(ログインコントローラで)ngDialogを開くのはここ
は次のとおりです。
$state.go('app.dashboard')
if(AclService.can('edit')|| AclService.can('admin')){
$scope.$on('$stateChangeSuccess', function onStateSuccess(event, toState, toParams, fromState){
$rootScope.modalFinished = true;
CauseService.get().then(function(result){
var cause = result[0].attributes;
if(!cause.has_backlinked || !cause.has_verified_address){
// $rootScope.modalFinished = true;
ngDialog.open({
template: '../../app/views/dashboard/progress_modal.html',
showClose: false,
className: 'ngdialog-theme-default progressModal',
controller: 'ProgressModalController',
resolve:{
'Cause': ['CauseService', function(CauseService){
// console.log("CauseService in routes", CauseService.get());
return CauseService.get();
}]
}
});
}
});
});
}
任意の助けいただければ幸いです。
ありがとうございます。よし
-M-