2014-10-12 14 views
7

Tôi đang cố thực hiện cuộc gọi dịch vụ từ js góc. Tôi đã tải về angular seed project .Và bên trong view1.js viết đoạn mã sau để gọi dịch vụ:AngularJS Lỗi: Module 'ngResource' không khả dụng! Bạn đã viết sai chính tả tên mô-đun hoặc quên tải nó

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

Đây là index.html nơi tôi đã bao gồm các kịch bản yêu cầu:

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

Nhưng trên chạy ứng dụng, nó hiển thị lỗi sau trong bảng điều khiển trình duyệt:

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

thử '[ 'nhập', function (Entry) { ' –

+0

rõ rằng dường như ném một lỗi khác' Lỗi: [$ injector: unpr] Unknown nhà cung cấp: $ resourceProvider <- $ resource <- Entry' – iJade

+1

thêm 'ngResource' vào' angular.module ('myApp.view1', ['ngRoute', 'ngResource']) ' –

Trả lời

0

Bạn đang thiếu danh sách phụ thuộc.

Nếu bạn đang truyền một mảng như là phụ thuộc để được tiêm, bạn cần phải nói góc cạnh.

['Entry', function (Entry) { }]; nên thực hiện thủ thuật hoặc chỉ thực hiện function (Entry) { }.

lý do tại sao Entry là undefined, là bởi vì góc không biết những gì u cần phải được tiêm (bạn đang đi qua một ký hiệu mảng vào hệ thống DI của góc)

ps: sry cho tiếng anh xấu

+0

@iJay sry for late trả lời, tôi thấy '' là nó đúng đường? vì hầu hết đường dẫn angularjs trong html của bạn dường như nằm trong thư mục 'bower_components' :) –

+0

thnks anywaz .... thực sự đó là lỗi nhỏ lỗi chính tả :) – iJade

1

Điều duy nhất có ý nghĩa là tệp angular-resource.js không được tải đúng cách, bạn có thể xem tab mạng và xem tệp thực sự được tải hay không và tên của mô-đun là gì? để đảm bảo bạn đã nhập chính xác.

(Rất tiếc vì không nhận xét, chưa đủ đại diện).

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

nên là:

<script src="bower_components/angular-resource/angular-resource.js"></script> 
Các vấn đề liên quan