Angular ui bootstrap - 无法注入解析功能

Posted

技术标签:

【中文标题】Angular ui bootstrap - 无法注入解析功能【英文标题】:Angular ui bootstrap - Not able to inject resolve function 【发布时间】:2017-10-04 11:28:16 【问题描述】:

我有一个点击按钮,我必须打开一个弹出窗口。这是我打开模式的配置:

var uibModalInstance = $uibModal.open(
              animation: true,
              ariaLabelledBy: 'modal-title',
              ariaDescribedBy: 'modal-body',
              controller: 'lsResultPopCtrl',
              templateUrl: 'template.html',
              windowTemplateUrl: 'template.html',
              size: size,
              resolve: 
                 items: function()
                    return $scope.items;
                
              
            );

控制器代码:

app.controller('lsResultPopCtrl', function ($scope, $uibModal, items) 

这段代码给了我错误:

Error: [$injector:unpr] Unknown provider: itemsProvider <- items <- lsResultPopCtrl

我正在关注这个例子:https://angular-ui.github.io/bootstrap/

编辑:

在 chrome 调试器中,我可以看到 lsResultPopCtrl 中的 items 数组已加载数据,但弹出窗口未显示,我收到错误消息。

【问题讨论】:

你的代码是什么样的?你需要在问题中。很明显,您实际上并没有逐字使用演示词(例如,示例不使用 $scope)。 模态配置是从不同的函数生成的,所以我包含了最终的配置对象。 你能做个小家伙吗? 【参考方案1】:

您应该注入控制器的依赖项是$uibModalInstance,而不是$uibModal。改变它,它就会工作:

app.controller('lsResultPopCtrl', ['$scope', '$uibModalInstance', 'items', function ($scope, $uibModalInstance, items) 
...
]);

【讨论】:

我没有使用 $uibModal,我删除了它仍然是同样的错误。 你不明白...,你必须注入 $uibModalInstance 否则解析不会将你的变量创建为依赖项。您必须完全按照我的描述定义您的控制器 获取 Error: [$injector:unpr] Unknown provider: $uibModalInstanceProvider &lt;- $uibModalInstance &lt;- lsResultPopCtrl,角度 js - v1.6.2 角度引导 ui - v2.5.0 @Naveen 创建一个肯定会帮助人们回答您的问题的 plunk。

以上是关于Angular ui bootstrap - 无法注入解析功能的主要内容,如果未能解决你的问题,请参考以下文章

Angular UI Bootstrap 响应式导航栏下拉菜单在新版本中无法正常工作

Angular UI 和 Bootstrap:点击链接时折叠移动导航栏

UI-Bootstrap Carousel 不会与我的 Angular 应用程序合作。为啥?

Angular UI Bootstrap datepicker:ng-readonly 支持

html angular-ui-bootstrap Typeahead的示例用法(https://angular-ui.github.io/bootstrap/)

在 webpack 中使用 angular-ui-bootstrap