2014-10-12 1 views
7

Я пытаюсь сделать вызов службы с углового js. Я скачал angular seed project й внутри view1.js написал следующий код для вызова службы:Ошибка AngularJS: модуль 'ngResource' недоступен! Вы либо ошибочно написали имя модуля, либо забыли загрузить его

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

Вот является index.html где я включил необходимые скрипты:

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

Но работает приложение, он показывает следующую ошибку в консоли браузера:

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

попробовать '[ 'запись', функция (запись) {' –

+0

хорошо, что, кажется, бросить другую ошибку 'Ошибка: [$ Инжектор: unpr] Неизвестный поставщик: $ resourceProvider <- $ resource <- Entry' – iJade

+1

добавить 'ngResource' в' angular.module ('myApp.view1', ['ngRoute', 'ngResource']) ' –

ответ

0

У вас отсутствует список зависимостей.

Если вы передаете массив как зависимую для инъекции, вам нужно указать угловой.

['Entry', function (Entry) { }]; должен сделать трюк или просто сделать function (Entry) { }.

причина, почему Entry не определенно, потому, что угловой не знает, что и нужно для инъекций (вы передаете нотацию массива в систему DI Угловой в)

пса: СРЮ за плохой английский

+0

@iJay sry for late ответ, я вижу '' это правильный путь? потому что большинство путей angularjs в вашем html, похоже, находятся в каталоге 'bower_components' :) –

+0

thnks anywaz .... на самом деле это была небольшая ошибка опечатки :) – iJade

1

Единственное, что имеет смысл, так это то, что файл angular-resource.js загружен неправильно, можете ли вы посмотреть вкладку в сети и посмотреть, какой файл загружен и что такое имя модуля? чтобы убедиться, что вы набрали его правильно.

(Извините, что не комментирует, не хватает репутации пока).

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

должно быть:

<script src="bower_components/angular-resource/angular-resource.js"></script> 
Смежные вопросы