好的,所以我在其他项目中已经做过一百次了,但是由于某些原因,我在$ionicPopup.show({})上总是遇到错误

我在ng-click HTML中调用了loginPressed()

这是我得到的错误:TypeError: $ionicPopup.show is not a function

这是控制器的代码,Ionic的版本为1.3.2:

.controller('loginCtrl', ['$scope', '$stateParams', '$ionicPopup',
'$rootScope', '$state',
function ($scope, $ionicPopup, $stateParams, $state) {
  $scope.$on("$ionicView.loaded", function (event, data) {
    console.log("called ionicView loaded");
    $scope.data = {};
    var num = Math.floor((Math.random() * 5) + 1);
    $scope.data.bgImage = "url(img/bg" + "-" + num + ".jpg)";
  });
  $scope.loginPressed = function () {
    console.log($ionicPopup);
      var loginPopUp = $ionicPopup.show({
      template: '<input type="email" ng-model="data.email"> <input type="password" ng-model="data.model"> ',
      title: 'Login',
      scope: $scope,
      buttons: [
        {text: 'Cancel'},
        {
          text: '<b>Login</b>',
          type: 'button-dark',
          onTap: function (e) {
            if (!$scope.data.email || !$scope.data.password) {
              e.preventDefault();
            } else {
              return $scope;
            }
          }
        }
      ]
    });
    loginPopUp.then(function (res) {
      console.log('Tapped!', res);
    })
  };
}])


任何帮助将不胜感激。

最佳答案

控制器功能参数与数组中字符串的顺序不匹配。

改成:

['$scope', '$stateParams', '$ionicPopup', '$rootScope', '$state',
function ($scope, $stateParams, $ionicPopup, $rootScope, $state) {

关于javascript - $ ionicPop.show()失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41527009/

10-12 12:56
查看更多