2014-01-10 5 views
0

다음은 각도 코드입니다. 오류에 대한 해결책을 많이 찾았습니다. 언급 된 솔루션에는 [ngroute]가 포함되어 있지만 포함되어 있지만 여전히 오류가 해결되지 않았습니다. 다음은 Angularjs 인젝터 모듈러

코드입니다 :

Index.html을

<!DOCTYPE html> 
<html ng-app="myapp"> 
<head> 
    <script type="text/javascript" src="angular.min.js"></script> 
    <script type="text/javascript" src="angular-route.min.js"></script> 
    <script type="text/javascript" src="controller.js"></script> 
</head> 
<body> 
    <h1>Amail</h1> 
    <div ng-view></div> 
</body> 
    </html> 

controller.js

var aMailservices=angular.module("myapp",['ngRoute']); 

    function emailRouteConfig ($routeProvider,$locationProvider) { 
    $locationProvider.html5mode(true); 
    $routeProvider. 
    when('/',{ 
    controller:'ListController', 
    templateUrl:'list.html' 
    }). 
    when('/view/:id',{ 
    controller:'DetailController', 
    templateUrl:'detail.html' 
    }). 
    otherwise({ 
    redirectTo:'/' 
    }); 
    } 

    aMailservices.config(emailRouteConfig); 


    messages = [{ 
     id: 0, sender: '[email protected]', subject: 'Hi there, old friend', 
     date: 'Dec 7, 2013 12:32:00', recipients: ['[email protected]'], 
     message: 'Hey, we should get together for lunch sometime and catch up.' 
     +'There are many things we should collaborate on this year.' 
     }, { 
     id: 1, sender: '[email protected]', 
     subject: 'Where did you leave my laptop?', 
     date: 'Dec 7, 2013 8:15:12', recipients: ['[email protected]'], 
      message: 'I thought you were going to put it in my desk drawer.' 
     +'But it does not seem to be there.' 
     }, { 
     id: 2, sender: '[email protected]', subject: 'Lost python', 
     date: 'Dec 6, 2013 20:35:02', recipients: ['[email protected]'], 
     message: "Nobody panic, but my pet python is missing from her cage." 
     +"She doesn't move too fast, so just call me if you see her." 
     } ]; 

    function ListController($scope){ 
    $scope.messages=messages; 
      } 

    function DetailController($scope,$routeParams){ 
     $scope.message=messages[$routeParams.id]; 
     } 

list.html

<table> 
<tr> 
    <td><strong>Sender</strong></td> 
    <td><strong>Subject</strong></td> 
    <td><strong>Date</strong></td> 
</tr> 
<tr ng-repeat='message in messages'> 
     <td>{{message.sender}}</td> 
     <td><a href="#/view/{{message.id}}"></a></td> 
     <td>{{message.date}}</td> 
</tr> 

detail.html

<div><strong>Subject:</strong>{{message.subject}}</div> 
<div><strong>Sender:</strong>{{message.sender}}</div> 
<div><strong>Date:</strong>{{message.date}}</div> 
<div> 
<strong>To:</strong> 
<span ng-repeat="recipient in message.recipients">{{recipient}}</span> 
</div> 
<div>{{message.message}}</div> 
<a href="#/">Back to message list</a> 
+2

이 정확하게 오류가 무엇입니까? – Beterraba

+0

그는 자신의 컨트롤러에'$ routeParams'를 사용할 때 "Angularjs injector modulerr"를 얻는 것 같습니다. –

+0

@Beterraba 정확한 오류는 Uncaught Error : [$ injector : modulerr] http://errors.angularjs.org/1.2.6/$injector/modulerr?p0=myapp&p1=TypeError%...t%2520Brothers%2Fangular%2Fegs%입니다. 2Fchap2 % 2Femail % 2Fangular.min.js % 3A17 % 3A178) – Tanmay

답변

1

난 당신이 모듈에 컨트롤러를 추가 권합니다, 그렇지 않은 경우는 $ routeParams에 데리러하지 않습니다. 모듈에 종속성이 주입되었습니다. 컨트롤러가 모듈에 추가되지 않으면 모듈에 주입 된 종속성을 이용할 수 없습니다.

는 다음을 수행하십시오

angular.module("myapp",['ngRoute']).config(function($routeProvider,$locationProvider) {}) 
.controller('DetailController', function($scope,$routeParams){}); 
+0

안녕하세요 @ C Fairweather 나는 내 코드에서 다음과 같은 변경 사항을 수행했습니다. 아래 라인 aMailservices.controller ('ListController', function ($ scope) { \t $ scope.messages = messages; }); aMailservices.controller ('DetailController', function ($ scope, $ routeParams) { \t $ scope.message = messages [$ routeParams.id]; }); 아직도 내가 잘못하고있어. 내가 뭘 잘못하고 있는지 모르겠다. – Tanmay