2014-10-12 15 views
7

Sto provando a effettuare una chiamata di servizio da angular js. Ho scaricato il angular seed project .E all'interno del view1.js ha scritto il seguente codice per chiamare il servizio:Errore AngularJS: il modulo 'ngResource' non è disponibile! Hai sbagliato a scrivere il nome del modulo o hai dimenticato di caricarlo.

'use strict'; 

angular.module('myApp.view1', ['ngRoute','ngResource']) 

.config(['$routeProvider', function($routeProvider) { 
    $routeProvider.when('/view1', { 
    templateUrl: 'view1/view1.html', 
    controller: 'View1Ctrl' 
    }); 
}]) 
.factory('Entry', ['$resource',function($resource) { 
    return $resource('http://localhost:8000/emp/'); // Note the full endpoint address 
}]) 
.controller('View1Ctrl', ['Entry',function(Entry) { 
    var entries = Entry.query(function() { 
    console.log(entries); 
  }); 
}]); 

Ecco la index.html in cui ho incluso gli script necessari:

<!DOCTYPE html> 
<!--[if lt IE 7]>  <html lang="en" ng-app="myApp" class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]--> 
<!--[if IE 7]>   <html lang="en" ng-app="myApp" class="no-js lt-ie9 lt-ie8"> <![endif]--> 
<!--[if IE 8]>   <html lang="en" ng-app="myApp" class="no-js lt-ie9"> <![endif]--> 
<!--[if gt IE 8]><!--> <html lang="en" ng-app="myApp" class="no-js"> <!--<![endif]--> 
<head> 
    <meta charset="utf-8"> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
    <title>My AngularJS App</title> 
    <meta name="description" content=""> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <link rel="stylesheet" href="bower_components/html5-boilerplate/css/normalize.css"> 
    <link rel="stylesheet" href="bower_components/html5-boilerplate/css/main.css"> 
    <link rel="stylesheet" href="app.css"> 
    <script src="bower_components/html5-boilerplate/js/vendor/modernizr-2.6.2.min.js"></script> 
</head> 
<body> 
    <ul class="menu"> 
    <li><a href="#/view1">view1</a></li> 
    <li><a href="#/view2">view2</a></li> 
    </ul> 

    <!--[if lt IE 7]> 
     <p class="browsehappy">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p> 
    <![endif]--> 

    <div ng-view></div> 

    <div>Angular seed app: v<span app-version></span></div> 

    <!-- In production use: 
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/x.x.x/angular.min.js"></script> 
    --> 
    <script src="bower_components/angular/angular.js"></script> 
    <script src="bower_components/angular-route/angular-route.js"></script> 
    <script src="angular-resource.js"></script> 
    <script src="app.js"></script> 
    <script src="view1/view1.js"></script> 
    <script src="view2/view2.js"></script> 
    <script src="components/version/version.js"></script> 
    <script src="components/version/version-directive.js"></script> 
    <script src="components/version/interpolate-filter.js"></script> 
</body> 
</html> 

Ma a correre l'applicazione, mostra il seguente errore nella console del browser:

+0

prova '[ 'Entry', la funzione (Entry) {' –

+0

bene che sembra gettare un altro errore 'Errore: [$ iniettore: UNPR] fornitore sconosciuto: $ resourceProvider <- $ resource <- Entry' – iJade

+1

aggiungi 'ngResource' a' angular.module ('myApp.view1', ['ngRoute', 'ngResource']) ' –

risposta

0

Manca l'elenco delle dipendenze.

Se si passa una matrice come dipendente per essere iniettata, è necessario dire angolare.

['Entry', function (Entry) { }]; dovrebbe fare il trucco, o semplicemente fare function (Entry) { }.

il motivo per cui Entry è indefinito, è perché angolare non sa cosa u necessità di iniettare (si sta passando una notazione di matrice per il sistema DI del angolare)

ps: sry per il cattivo inglese

+0

@iJay sry per ritardo risposta, vedo '' è la strada giusta? perché la maggior parte del percorso angularjs nel tuo html sembra essere nella directory 'bower_components' :) –

+0

thwks anywaz .... in realtà si trattava di un piccolo errore di battitura :) – iJade

1

L'unica cosa che ha senso è che il file angular-resource.js non è caricato correttamente, puoi dare un'occhiata alla scheda di rete e vedere quale file è effettivamente caricato e qual è il nome del modulo? per assicurarti di averlo digitato correttamente.

(Scusate per non aver commentato, non abbastanza ancora).

8
<script src="angular-resource.js"></script> 

dovrebbe essere:

<script src="bower_components/angular-resource/angular-resource.js"></script> 
Problemi correlati