我正在尝试使用 ui-routing 创建角度模态向导。在我的模态窗口中,我得到了两个嵌套视图,它们应该负责通过 ui-sref 指令在模态窗口内导航。虽然我在应用程序声明中添加了"ui.bootstrap"和"ui.router"模块,但当我单击应该在控制台上打开 enitre 模式的按钮时出现错误:
"转换拒绝(类型:6,消息:转换错误,详细信息:
错误: [$injector:unpr] 未知提供程序: $modalProvider <- $modal"。
应用.js:
/* definition of angularJS application and include modules*/
var app = angular.module('accTrader', [
'ui.router', 'ui.bootstrap', 'LocalStorageModule', 'duScroll', 'ngTouch'
]);
// routing config
app.config(function ($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/');
$stateProvider
.state("home", {
url: "/",
template: '<button class="btn btn-default" ui-sref="modal"> Modal</button>',
controller: 'MainCtrl'
})
.state("aboutus", {
url: "/aboutus",
templateUrl: "app/views/aboutus.html"
})
.state("category", {
url: "/category/gameid/:gameid",
controller: 'CategoryCtrl',
templateUrl: 'app/views/category.html'
})
.state('modal', { // MODAL
parent: 'home',
url: '/modal',
onEnter: ['$modal', '$state', function($modal, $state) {
console.log('Open modal');
$modal.open({
template: '<button class="btn btn-danger" ui-sref="signin"> sign-in </button> <button ui-sref="signout" class="btn btn-success"> sign-out </button> <div ui-view="modal"></div>',
backdrop: false,
windowClass: 'right fade'
}).result.finally(function() {
$state.go('list');
});
}]
})
.state('signin', {
url: '/signin',
parent: 'modal',
views: {
'modal@': {
template: '<p>sign-in</p>'
}
}
})
.state('signout', {
url: '/signout',
parent: 'modal',
views: {
'modal@': {
template: '<p>sign-out</p>'
}
}
})
}); // END ROUTING CONFIG
索引的主要部分.html:
...
<body ng-cloak id="top" ng-controller="ExternalCtrl">
<div ui-view></div>
<a href="#top" du-smooth-scroll="">
<div id="backToTop" class="bottomMenu hide"></div>
</a>
...
检查您的 UI 引导程序版本。一段时间以来,它一直$uibModal
不$modal
.
它在版本 1.1.0 中更新,提交 8c7b9e4。
如果您使用的是 1.1.0 及更高版本,那么您应该注入$uibModal
而不是$modal
。