2016-05-13 45 views
1

我在Google之前詢問了它,但沒有運氣。TypeError:undefined不是返回資源時的函數

我試圖用ngresource調用其他服務,但應用程序UI不啓動,因爲它與

05-13 02:16:08.011 2402-2402/com.app.mvalt I/chromium: [INFO:CONSOLE(25642)] "TypeError: undefined is not a function 
                  at Object.<anonymous> (file:///android_asset/www/js/services.js:8:9) 
                  at Object.invoke (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:17762:17) 
                  at Object.enforcedReturnValue [as $get] (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:17615:37) 
                  at Object.invoke (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:17762:17) 
                  at file:///android_asset/www/lib/ionic/js/ionic.bundle.js:17580:37 
                  at getService (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:17721:39) 
                  at Object.invoke (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:17753:13) 
                  at extend.instance (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:22311:34) 
                  at nodeLinkFn (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:21421:36) 
                  at compositeLinkFn (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:20853:13)", source: file:///android_asset/www/lib/ionic/js/ionic.bundle.js (25642) 

這裏突破是我的service.js:

angular.module('app.services', ['ngResource']) 
    .factory('BlankFactory', [function(){ 
    }]) 

.factory('User', [function($resource){ 
    return $resource('http://1.2.3.4:1234/UASAPI/userRegistration'); 
    }]) 

.service('BlankService', [function(){ 
    }]); 

這裏是我的索引。 HTML

<!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> 

    <link href="lib/ionic/css/ionic.css" rel="stylesheet"> 
    <script src="lib/ionic/js/ionic.bundle.js"></script> 
    <script src="lib/ionic/js/angular-resource.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"> 
    --> 

    <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; 
     } 
    </style> 

    <script src="js/app.js"></script> 
    <script src="js/controllers.js"></script> 
    <script src="js/routes.js"></script> 
    <script src="js/services.js"></script> 
    <script src="js/directives.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> 
    <div> 
     <ion-nav-bar class="bar-stable bar-balanced"> 
      <ion-nav-back-button class="button-icon icon ion-ios-arrow-back"></ion-nav-back-button> 
     </ion-nav-bar> 
     <ion-nav-view></ion-nav-view> 
    </div> 
</div> 
    </body> 
</html> 

我donwloaded角resource.min.js從http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.16/angular-resource.min.js

這裏是我的app.js

angular.module('app', ['ionic', 'app.controllers', 'app.routes', 'app.services', 'app.directives']) 

.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(); 
    } 
    }); 
}) 

有人能幫助我缺少什麼。

回答

1

User工廠有問題,您在工廠功能中使用它之前沒有注入$resource對象。

.factory('User', ['$resource', //<-- $resource dependency was missing here. 
    function($resource){ 
    return $resource('http://1.2.3.4:1234/UASAPI/userRegistration'); 
    } 
]) 

Also make sure, angular file version & ng-resource version should not get mismatch.

相關問題