2014-10-12 16 views
7

Próbuję wykonać zgłoszenie serwisowe z kątowego js. Pobrałem angular seed project .i wewnątrz view1.js napisał poniższy kod, żeby wywołać usługę:Błąd AngularJS: moduł "ngResource" jest niedostępny! Błędnie wpisałeś nazwę modułu lub zapomniałeś załadować go

'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); 
  }); 
}]); 

Oto index.html gdzie mam włączone wymagane skrypty:

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

Ale na uruchomienie aplikacji, pokazuje następujący błąd w konsoli przeglądarki:

Uncaught Error: [$injector:modulerr] Failed to instantiate module myApp due to: 
Error: [$injector:modulerr] Failed to instantiate module myApp.view1 due to: 
Error: [$injector:modulerr] Failed to instantiate module ngResource due to: 
Error: [$injector:nomod] Module 'ngResource' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument. 
+0

try '[ 'Wejście', function (Wejście) {' –

+0

dobrze, że wydaje się rzucać kolejny błąd 'Error: [$ wtryskiwacz: unpr] Nieznany dostawca: $ resourceProvider <- $ resource <- Entry' – iJade

+1

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

Odpowiedz

0

Brakuje listy zależności.

Jeśli przekazujesz tablicę jako zależność do wstrzyknięcia, musisz powiedzieć kątową.

['Entry', function (Entry) { }]; powinien zrobić lewy, lub po prostu zrobić function (Entry) { }.

powód Entry jest niezdefiniowany, dlatego kątowa nie wie, co u muszą być wstrzykiwany (jesteś przechodząc notacji tablicy do systemu DI kątowego za)

PS: sry za zły język angielski

+0

@JJay sry na spóźnienie odpowiedź, widzę "" czy to właściwa ścieżka? ponieważ większość ścieżek angularjs w twoim html zdaje się być w katalogu 'bower_components' :) –

+0

thnks anywaz .... faktycznie to był mały błąd literówki :) – iJade

1

Jedyną rzeczą, która ma sens, jest to, że plik angular-resource.js nie jest poprawnie załadowany, czy możesz rzucić okiem na kartę sieciową i zobaczyć, jaki plik jest faktycznie załadowany i jaka jest nazwa modułu? aby upewnić się, że wpisałeś go poprawnie.

(Przepraszamy za nie komentowanie, za mało powtórzeń).

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

powinno być:

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