我必须从主菜单中显示一个模态。模态显示正确。但是当我关闭模态时,我希望显示前一个网址。 这是模态的代码:
.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;
});
} ]);
这是关闭模态的功能:
$scope.close = function() {
$uibModalInstance.close();
$state.go($rootScope.$previousState.name, {
url: $rootScope.$previousState.url,
templateUrl: $rootScope.$previousState.templateUrl,
controller: $rootScope.$previousState.controller
});
};
当我进入代码时,url,templateUrl和controller都拥有正确的数据。但是页面没有显示。
关闭模态时显示的页面为reportSettingModal
。
我做错了什么?
答案 0 :(得分:0)
您可以使用$state.go
,但这不是一个好习惯。因为,一般来说,显示模态和状态变化之间不应该有任何关系。显示模态应该独立于路径配置。只需使用addClass
或removeClass
之类的内容即可在您点击链接或按钮时显示模式。
$scope.show = function (){
// open modal here by adding a class to the modal element
}
以同样的方式关闭模态。