这有点奇怪。当我在线搜索这个问题时,我看到很多页面的Google结果和SO解决方案,但没有一个似乎不起作用!
原文链接:https://www.f2er.com/angularjs/144375.html简而言之,我试图实现AngularUI Bootstrap Modal。我不断收到以下错误:
Error: [$injector:unpr] Unknown provider: $uibModalInstanceProvider <- $uibModalInstance <- addEntryCtrl
这是我的HTML:
<nav class="navbar navbar-default"> <div class="container"> <span class="nav-col" ng-controller="navCtrl" style="text-align:right"> <a class="btn pill" ng-click="open()" aria-hidden="true">Add New</a> </span> </div> </nav>
这是我的控制器:
var app = angular.module('nav',['ui.bootstrap']); app.controller('navCtrl',['$scope','$uibModal',function($scope,$uibModal) { $scope.open = function() { var uibModalInstance = $uibModal.open({ animation: true,templateUrl: 'addEntry/addEntry.html',controller: 'addEntryCtrl',}); }; }]);
最后,这是我的模式代码:
var app = angular.module('addEntry',['firebase','ui.bootstrap']); app.controller('addEntryCtrl','$firebaSEObject','$state','$uibModalInstance',$firebaSEObject,$state,$uibModalInstance) { $scope.cancel = function() { $uibModalInstance.dismiss('cancel'); }; $uibModalInstance.close(); }]);
我试过的解决方案
>更新Angular Bootstrap(版本:0.14.3)和Angular(v1.4.8)
>将uibmodalInstance更改为modalInstance
>将$ uibModalInstance更改为modalInstance
把我的addEntryCtrl放在我的ModalInstance里面
有什么想法吗?这已经把我推开了近2天了。
*编辑*
我应该注意两件事情:
1)当我从addEntry中删除$ uibModalInstance作为依赖关系时,我的HTML表单提交按钮工作正常,表单看起来完美。即使重定向发生正确(提交时)。问题依然存在:模态仍然保留在屏幕上,抛出$ uibModalInstance未定义的错误。这是有道理的,因为我删除它作为依赖,但我显然仍然需要模态是接近提交。
2)另外,我的应用程序的另一部分几乎有相同的代码。唯一的区别是它通过工厂工作。否则,代码是相同的。因此,我相信我的依赖是所有的,版本是正确的。所以。吓坏。奇怪。
谢谢!