Tanmay
Tanmay

Reputation: 1

Angularjs injector modulerr

Following is my angular code.I searched a lot for the solution for the error,the solution mentioned is include ['ngroute'],I have included but still the error is not being solved.

Below is the code:

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>

Upvotes: 0

Views: 469

Answers (1)

C Fairweather
C Fairweather

Reputation: 696

I would advise you add your controllers to the module, otherwise they won't pick up on the $routeParams. The dependency was injected into your module; if your controllers aren't added to the module, then they won't be able to take advantage of the dependency injected into the module.

Do the following:

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

Upvotes: 1

Related Questions