错误:[$ injector:unpr]未知提供者:$$ qProvider< - $$ q< - $ ionicModal

时间:2016-03-05 11:55:17

标签: angularjs ionic-framework modal-dialog

我正在处理Ionic应用程序并包含模态视图:

    app.controller('StepMapCtrl', function($scope, $ionicModal){
        $ionicModal.fromTemplateUrl('template/modal.html', {
         scope: $scope
      }).then(function(modal) {
        $scope.modal = modal;
      });

      $scope.openModal = function() {
        $scope.modal.show()
        $scope.imgUrl = "http://placekitten.com/g/500/800"
      }
});

我关注此模板:http://codepen.io/mikekoro/pen/dPYWvQ

当我打开页面时,我得到了:

Error: [$injector:unpr] Unknown provider: $$qProvider <- $$q <- $ionicModal
http://errors.angularjs.org/1.2.12/$injector/unpr?p0=%24%24qProvider%20%3C-%20%24%24q%20%3C-%20%24ionicModal
    at ionic.bundle.js:9007
    at ionic.bundle.js:12475
    at Object.getService [as get] (ionic.bundle.js:12602)
    at ionic.bundle.js:12480
    at getService (ionic.bundle.js:12602)
    at Object.invoke (ionic.bundle.js:12629)
    at ionic.bundle.js:12481
    at getService (ionic.bundle.js:12602)
    at invoke (ionic.bundle.js:12629)
    at Object.instantiate (ionic.bundle.js:12650)

这是我的模态,template / modal.html

 <ion-modal-view>
    <ion-header-bar class="bar bar-header bar-stable">
      <h1 class="title">View Image</h1>
      <button class="button button-clear button-primary" ng-click="modal.hide()">Close</button>
    </ion-header-bar>
    <ion-content class="padding" scroll="false">

      <ion-scroll zooming="true" direction="xy" delegate-handle="zoom-pane" class="zoom-pane" min-zoom="1" scrollbar-x="false" scrollbar-y="false">   
      <img ng-src="{{imgUrl}}">
    </ion-scroll>

    </ion-content>
  </ion-modal-view>

有人可以帮助我吗?

3 个答案:

答案 0 :(得分:0)

angular.module('ionicApp', ['ionic'])

答案 1 :(得分:0)

你的设置是什么?您是否将代码分为app.jscontrollers.js等?您是否忘记定义角度模块,或者您是否忘记将其复制到上面的代码段中?

无论哪种方式,如果您使用的是app.controller...,您需要将Angular模块声明为变量,如下所示:

var app = angular.module('ionicApp', ['ionic']);

app.controller('StepMapCtrl', function($scope, $ionicModal){
        $ionicModal.fromTemplateUrl('template/modal.html', {
         scope: $scope
      }).then(function(modal) {
        $scope.modal = modal;
      });

      $scope.openModal = function() {
        $scope.modal.show()
        $scope.imgUrl = "http://placekitten.com/g/500/800"
      }
});

答案 2 :(得分:0)

我发现了我的问题。

我在我的应用程序中加入了一个旧的离子版本。

感谢您的回复