2017-02-23 64 views
1

Я потратил целую неделю, пытаясь использовать каждый метод, но я продолжаю воссоздавать ту же ошибку. Я знаю, что ngCordova.min.js должен быть выше Cordova.js. Но, похоже, ничто не загружает мои плагины. Я посетил сайт ngCordova, и они объяснили, что эта ошибка может быть разочаровывающей и трудно исправить. Вот мои файлы спасибо

app.js

// Ionic Starter App 
 

 
// angular.module is a global place for creating, registering and retrieving Angular modules 
 
// 'starter' is the name of this angular module example (also set in a <body> attribute in index.html) 
 
// the 2nd parameter is an array of 'requires' 
 
// 'starter.services' is found in services.js 
 
// 'starter.controllers' is found in controllers.js 
 
angular.module('app', ['ionic', 'app.controllers', 'app.routes', 'app.directives','app.services','ngCordova']) 
 

 
.config(function($ionicConfigProvider, $sceDelegateProvider){ 
 
    
 

 
    $sceDelegateProvider.resourceUrlWhitelist([ 'self','*://www.youtube.com/**', '*://player.vimeo.com/video/**']); 
 

 
}) 
 

 
.run(function($ionicPlatform) { 
 
    $ionicPlatform.ready(function() { 
 
    // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard 
 
    // for form inputs) 
 
    if (window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) { 
 
     cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true); 
 
     cordova.plugins.Keyboard.disableScroll(true); 
 
    } 
 
    if (window.StatusBar) { 
 
     // org.apache.cordova.statusbar required 
 
     StatusBar.styleDefault(); 
 
    } 
 
    }); 
 
}) 
 

 
/* 
 
    This directive is used to disable the "drag to open" functionality of the Side-Menu 
 
    when you are dragging a Slider component. 
 
*/ 
 
.directive('disableSideMenuDrag', ['$ionicSideMenuDelegate', '$rootScope', function($ionicSideMenuDelegate, $rootScope) { 
 
    return { 
 
     restrict: "A", 
 
     controller: ['$scope', '$element', '$attrs', function ($scope, $element, $attrs) { 
 

 
      function stopDrag(){ 
 
       $ionicSideMenuDelegate.canDragContent(false); 
 
      } 
 

 
      function allowDrag(){ 
 
       $ionicSideMenuDelegate.canDragContent(true); 
 
      } 
 

 
      $rootScope.$on('$ionicSlides.slideChangeEnd', allowDrag); 
 
      $element.on('touchstart', stopDrag); 
 
      $element.on('touchend', allowDrag); 
 
      $element.on('mousedown', stopDrag); 
 
      $element.on('mouseup', allowDrag); 
 

 
     }] 
 
    }; 
 
}]) 
 

 

 

 
/* 
 
    This directive is used to open regular and dynamic href links inside of inappbrowser. 
 
*/ 
 
.directive('hrefInappbrowser', function() { 
 
    return { 
 
    restrict: 'A', 
 
    replace: false, 
 
    transclude: false, 
 
    link: function(scope, element, attrs) { 
 
     var href = attrs['hrefInappbrowser']; 
 

 
     attrs.$observe('hrefInappbrowser', function(val){ 
 
     href = val; 
 
     }); 
 
     
 
     element.bind('click', function (event) { 
 

 
     window.open(href, '_system', 'location=yes'); 
 

 
     event.preventDefault(); 
 
     event.stopPropagation(); 
 

 
     }); 
 
    } 
 
    }; 
 
});

controller.js

angular.module('app.controllers', []) 
 
    
 
.controller('menuCtrl', ['$scope', '$stateParams', // The following is the constructor function for this page's controller. See https://docs.angularjs.org/guide/controller 
 
// You can include any angular dependencies as parameters for this function 
 
// TIP: Access Route Parameters for your page via $stateParams.parameterName 
 
function ($scope, $stateParams) { 
 

 

 
}]) 
 
    /* 
 
.controller('scannerCtrl', ['$scope', '$stateParams', // The following is the constructor function for this page's controller. See https://docs.angularjs.org/guide/controller 
 
// You can include any angular dependencies as parameters for this function 
 
// TIP: Access Route Parameters for your page via $stateParams.parameterName $ionicPlatform.ready(function() { 
 
function ($scope, $stateParams) { 
 

 

 
}]) 
 
*/ 
 

 
.controller('scannerCtrl',['$scope','$stateParams', function($scope, $rootScope, $cordovaBarcodeScanner, $ionicPlatform,stateParams) { 
 

 

 

 

 
     $scope.scanBarcode = function() { 
 
     $cordovaBarcodeScanner.scan().then(function(imageData) { 
 
      alert(imageData.text); 
 
      console.log("Barcode Format -> " + imageData.format); 
 
      console.log("Cancelled -> " + imageData.cancelled); 
 
     }, function(error) { 
 
      console.log("An error happened -> " + error); 
 
     }); 
 
    }; 
 
    }]) 
 
    
 

 
.controller('qRCodeCtrl', ['$scope', '$stateParams', // The following is the constructor function for this page's controller. See https://docs.angularjs.org/guide/controller 
 
// You can include any angular dependencies as parameters for this function 
 
// TIP: Access Route Parameters for your page via $stateParams.parameterName 
 
function ($scope, $stateParams) { 
 

 

 
}]) 
 

 
    
 
.controller('profileCtrl', ['$scope', '$stateParams', // The following is the constructor function for this page's controller. See https://docs.angularjs.org/guide/controller 
 
// You can include any angular dependencies as parameters for this function 
 
// TIP: Access Route Parameters for your page via $stateParams.parameterName 
 
function ($scope, $stateParams) { 
 

 

 
}]) 
 
     
 
.controller('signupCtrl', ['$scope', '$stateParams', // The following is the constructor function for this page's controller. See https://docs.angularjs.org/guide/controller 
 
// You can include any angular dependencies as parameters for this function 
 
// TIP: Access Route Parameters for your page via $stateParams.parameterName 
 
function ($scope, $stateParams) { 
 

 

 
}]) 
 
    
 
.controller('loginCtrl', ['$scope', '$stateParams', // The following is the constructor function for this page's controller. See https://docs.angularjs.org/guide/controller 
 
// You can include any angular dependencies as parameters for this function 
 
// TIP: Access Route Parameters for your page via $stateParams.parameterName 
 
function ($scope, $stateParams) { 
 

 

 
}]) 
 

index.html (Template)

<!DOCTYPE html> 
 
<html> 
 
    <head> 
 
    <meta charset="utf-8"> 
 
    <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width"> 
 
    <title></title> 
 

 
    
 
    
 
    <script src="lib/ionic/js/ionic.bundle.js"></script> 
 
    <script src="js/ng-cordova.min.js"></script> 
 
    <!-- cordova script (this will be a 404 during development) --> 
 
    <script src="cordova.js"></script> 
 

 
    <!-- IF using Sass (run gulp sass first), then uncomment below and remove the CSS includes above 
 
    <link href="css/ionic.app.css" rel="stylesheet"> 
 
    --> 
 

 
    
 
    <link href="lib/ionic/css/ionic.css" rel="stylesheet"> 
 
    
 

 
    <style type="text/css"> 
 
     .platform-ios .manual-ios-statusbar-padding{ 
 
     padding-top:20px; 
 
     } 
 
     .manual-remove-top-padding{ 
 
     padding-top:0px; 
 
     } 
 
     .manual-remove-top-padding .scroll{ 
 
     padding-top:0px !important; 
 
     } 
 
     ion-list.manual-list-fullwidth div.list, .list.card.manual-card-fullwidth { 
 
     margin-left:-10px; 
 
     margin-right:-10px; 
 
     } 
 
     ion-list.manual-list-fullwidth div.list > .item, .list.card.manual-card-fullwidth > .item { 
 
     border-radius:0px; 
 
     border-left:0px; 
 
     border-right: 0px; 
 
     } 
 
     .show-list-numbers-and-dots ul{ 
 
     list-style-type: disc; 
 
     padding-left:40px; 
 
     } 
 
     .show-list-numbers-and-dots ol{ 
 
     list-style-type: decimal; 
 
     padding-left:40px; 
 
     } 
 
    </style> 
 

 
    <script src="js/app.js"></script> 
 
    <script src="js/controllers.js"></script> 
 
    <script src="js/routes.js"></script> 
 
    
 
     
 
    <script src="js/directives.js"></script> 
 
     
 
    <script src="js/services.js"></script> 
 
    
 

 
    <!-- Only required for Tab projects w/ pages in multiple tabs 
 
    <script src="lib/ionicuirouter/ionicUIRouter.js"></script> 
 
    --> 
 

 
    </head> 
 
    <body ng-app="app" animation="slide-left-right-ios7"> 
 
    <div> 
 
    <ion-side-menus enable-menu-with-back-views="false" data-componentid="side-menu21"> 
 
    <ion-side-menu-content> 
 
     <ion-nav-bar class="bar-stable"> 
 
     <ion-nav-back-button></ion-nav-back-button> 
 
     <ion-nav-buttons side="left"> 
 
      <button class="button button-icon button-clear ion-navicon" menu-toggle="left"></button> 
 
     </ion-nav-buttons> 
 
     </ion-nav-bar> 
 
     <ion-nav-view></ion-nav-view> 
 
    </ion-side-menu-content> 
 
    <ion-side-menu side="left" id="side-menu21"> 
 
     <ion-header-bar class="bar-stable"> 
 
     <div class="title">Menu</div> 
 
     </ion-header-bar> 
 
     <ion-content ng-controller="menuCtrl" padding="false" class="side-menu-left has-header "></ion-content> 
 
    </ion-side-menu> 
 
    </ion-side-menus> 
 
</div> 
 
    </body> 
 
</html>

scanner.html (Template)

<ion-view title="Scanner" id="page2"> 
 
    <ion-content padding="true" class="has-header"> 
 
    \t 
 
    <div class="card"> 
 
      <div class="item"> 
 
       <button class="button button-block button-positive" ng-click="scanBarcode()"> 
 
        <i class="icon ion-qr-scanner"></i> 
 
        Scan Now 
 
       </button> 
 
      </div> 
 
     </div> 
 

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

Ошибка сатаной писал сам

0  801650 error Error: undefined is not an object (evaluating '$cordovaBarcodeScanner.scan') 
[email protected]://192.168.1.73:8100/js/controllers.js:26:31 
fn 
http://192.168.1.73:8100/lib/ionic/js/ionic.bundle.js:65429:21 
[email protected]://192.168.1.73:8100/lib/ionic/js/ionic.bundle.js:30500:30 
http://192.168.1.73:8100/lib/ionic/js/ionic.bundle.js:65428:19 
[email protected]://192.168.1.73:8100/lib/ionic/js/ionic.bundle.js:16792:15 
[email protected]://192.168.1.73:8100/lib/ionic/js/ionic.bundle.js:16780:23 
[email protected][native code] 
[email protected]://192.168.1.73:8100/lib/ionic/js/ionic.bundle.js:2953:20 
[email protected]://192.168.1.73:8100/lib/ionic/js/ionic.bundle.js:2942:20 
[email protected]://192.168.1.73:8100/lib/ionic/js/ionic.bundle.js:3018:13 

File Setup

+0

Где ваш код? или файлы? – RaR

+0

жаль, что он загрузился до моего завершения. @RaR – Dedawg

+0

где ваш контроллер? –

ответ

0

У вас есть небольшая ошибка в вашем коде, вы забыли комментировать $ cordovaBarScaner.

.controller('scannerCtrl',['$scope','$rootScope','$cordovaBarcodeScanner', '$ionicPlatform', '$stateParams', function($scope, $rootScope, $cordovaBarcodeScanner, $ionicPlatform,stateParams) { 
 

 

 

 

 
     $scope.scanBarcode = function() { 
 
     $cordovaBarcodeScanner.scan().then(function(imageData) { 
 
      alert(imageData.text); 
 
      console.log("Barcode Format -> " + imageData.format); 
 
      console.log("Cancelled -> " + imageData.cancelled); 
 
     }, function(error) { 
 
      console.log("An error happened -> " + error); 
 
     }); 
 
    }; 
 
    }])

+0

Большое вам спасибо !!!!! Я не могу поверить, что могу пропустить эту небольшую ошибку! Жаль, что я мог бы проголосовать за вас десять тысяч раз. – Dedawg

+0

. Добро пожаловать, пожалуйста, отметьте ответ как принятый. Наслаждайтесь кодированием !!! –

 Смежные вопросы

  • Нет связанных вопросов^_^