メインメニューからモーダルを表示する必要があります。モーダルは正しく表示されます。しかし、モーダルを閉じると、私は前のURLを表示したい。 これはモーダルためのコードである:angular state.go関数は前のページにリダイレクトしません
.config(function ($stateProvider, $urlRouterProvider) {
$stateProvider
.state('home', {
url: '/home',
templateUrl: 'views/home.html',
controller: 'HomeCtrl'
})
.state('pos',{
url: '/pos',
templateUrl: 'views/pos.html',
controller: 'PosCtrl'
})
.state('vAnalyze',{
url: '/vAnalyze',
templateUrl: 'views/vAnalyze.html',
controller: 'VAnalyzeCtrl'
})
.state('reportSetting',{
url: '/reportSettingModal',
onEnter: function($modal){
$modal.open({
templateUrl: 'views/reportSettingModal.html',
controller: 'ReportSettingModalCtrl'
});
}
})
.state('error', {
url: '/error',
templateUrl: 'lib/views/error.html',
controller: 'ErrorCtrl'
});
// if none of the above states are matched, use this as the fallback
$urlRouterProvider.otherwise('/home');
})
.run(['AuthService', 'configSettings', '$rootScope', function (AuthService, configSettings, $rootScope)
{ // Apply Product Code
configSettings.productCode = 'VANALYZE';
AuthService.configProduct(configSettings.productCode);
$rootScope.$on('$stateChangeSuccess', function(event, to, toParams, from, fromParams) {
$rootScope.$previousState = from;
});
} ]);
これは、モーダルを閉鎖する機能である:私は、コードのURLにステップするとき
$scope.close = function() {
$uibModalInstance.close();
$state.go($rootScope.$previousState.name, {
url: $rootScope.$previousState.url,
templateUrl: $rootScope.$previousState.templateUrl,
controller: $rootScope.$previousState.controller
});
};
、templateUrlコントローラ全ては、正しいデータを持っています。しかし、ページは表示されません。 モーダルを閉じると表示されるページはreportSettingModal
です。
私は間違っていますか?
URLは変更されますか、それとも起こりませんか? ところで、なぜ$ state.goにこのオブジェクトの2番目のパラメータを渡していますか? また、私はルータをモーダルに使うことはありませんが、それはUCに依存します(例えば、モーダルはブックマーク可能でなければなりません) –
異なるページからモーダルを開始すると、URLが変わります。 state.go関数のために、私はこれをやってみました: '$ state.go($ rootScope。$ previousState.name)'しかし、ページは変更されませんでした。だから、それがもっと明白であれば、それはうまくいくと思った。しかし、それはしませんでした。私はあなたが「モーダルにルータを使う」という意味を知らない。通常、私はページからモーダルを呼び出しており、メインページを閉じると閉じます。このモーダルは、メインメニューから呼び出されます。 –
メニューバーのクリックからモーダルオープンを行うだけです。 –