【问题标题】:Angular ui bootstrap - Not able to inject resolve functionAngular ui bootstrap - 无法注入解析功能
【发布时间】: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)。
  • 模态配置是从不同的函数生成的,所以我包含了最终的配置对象。
  • 你能做个小家伙吗?

标签: jquery angularjs twitter-bootstrap angular-ui-bootstrap angular-ui


【解决方案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。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-16
  • 2015-05-21
  • 1970-01-01
  • 2015-09-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多