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')を呼び出すことができます。 –
は明らかにそうではありません。より高いバージョンでこの作業を行うにはどうすればよいですか? –
わかりませんが、推測しなければならないのであれば、そのステップを行う必要はありません。おそらく、箱の外で動作する –