var app = angular.module('uiRouterModal', ['ui.router', 'ui.bootstrap']);
app.config(function($stateProvider, $urlRouterProvider){
$urlRouterProvider.otherwise("/");
$stateProvider
.state('index', {
url: '/',
template: '<h2>Base state</h2>'
})
.state('modal', {
url: '/modal',
onEnter: ['$stateParams', '$state', '$uibModal', function($stateParams, $state, $uibModal) {
$uibModal.open({
template: [
'<div class="modal-content">',
'<div class="modal-header">',
'<h3 class="modal-title">Modal state</h3>',
'</div>',
'<div class="modal-body">',
'I did it!',
'</div>',
'<div class="modal-footer">',
'<button class="btn btn-primary" ng-click="dismiss()">OK</button>',
'</div>',
'</div>'
].join(''),
resolve: {}, // can resolve any data and pass to controller
controller: function($uibModalInstance, $scope){
$scope.dismiss = function() {
$uibModalInstance.dismiss();
};
}
});
}]
});
});
<!DOCTYPE html>
<html ng-app="uiRouterModal">
<head>
<meta charset="utf-8" />
<title>UI-Router and UI-Bootstrap Modal</title>
<script>document.write('<base href="' + document.location + '" />');</script>
<link rel="stylesheet" href="style.css" />
<script data-require="[email protected]" data-semver="1.4.8" src="https://code.angularjs.org/1.4.8/angular.js"></script>
<script data-require="[email protected]" data-semver="0.3.1" src="//cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.3.1/angular-ui-router.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/1.1.0/ui-bootstrap-tpls.js"></script>
<script src="script.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" />
</head>
<body>
<ui-view></ui-view>
<a ui-sref="modal">Click for modal</a>
</body>
</html>
您使用的是1.0之前的UI路由器的版本? “如果想要使用UI路由器的** 1.0之前的解析机制来解决模式问题,可以在应用程序” –
“的配置阶段调用$ uibResolve.setResolver('$ resolve')。我如何使这个工作更高版本? –
我不知道,但如果我不得不猜测,你就不需要那么做。可能是开箱即用 –