angularjs – Angular UI Bootstrap模式:[$inject:unpr]未知的提供者:$uibModalInstanceProvider

前端之家收集整理的这篇文章主要介绍了angularjs – Angular UI Bootstrap模式:[$inject:unpr]未知的提供者:$uibModalInstanceProvider前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这有点奇怪。当我在线搜索这个问题时,我看到很多页面的Google结果和SO解决方案,但没有一个似乎不起作用!

简而言之,我试图实现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)另外,我的应用程序的另一部分几乎有相同的代码。唯一的区别是它通过工厂工作。否则,代码是相同的。因此,我相信我的依赖是所有的,版本是正确的。所以。吓坏。奇怪。

谢谢!

答案找到了!与我的朋友一起走了,我们发现了答案。我想把它发贴在这里,以防别人读这个。

事实证明,我们在我们的模态窗口中有一个ng控制器,它是一个div标签,包裹在模态中的整个html格式。以前,当我们的表单不是模态的(它有一个单独的URL),但是由于某种原因,当它在一个模态中时,它会中断,这一点很好。 ng控制器引用了addEntryCtrl。删除它后立即工作!

猜你在找的Angularjs相关文章