2015-02-14 4 views
4

Я получаю undefined за $ routeParams. Вот мой код:

var ngAddressBook = angular.module('ngAddressBook', ['ngRoute']); 

ngAddressBook.config(['$routeProvider', 
    function($routeProvider) { 
     $routeProvider. 
      when('/', { 
       templateUrl: 'views/list.html', 
       controller: 'ngAddressListController' 
      }). 
      when('/add', { 
       templateUrl: 'views/add.html', 
       controller: 'ngAddressListController' 
      }). 
      when('/details/:id', { 
       templateUrl: 'views/details.html', 
       controller: 'ngAddressDetailsController' 
      }); 
    }]); 
// add a controller to it 
ngAddressBook.controller('ngAddressListController', ['$scope', function ($scope) 
    { 
     $scope.contacts = [ 
      {id:1,first_name:'Jane', last_name:'Doe','Phone':'123-456789','Email':'[email protected]'}, 
      {id:2,first_name:'Jhon', last_name:'Doe','Phone':'123-456789','Email':'[email protected]'} 
     ]; 
     $scope.getTotalContacts = function() { 
      return $scope.contacts.length; 
     }; 
    }]); 

ngAddressBook.controller('ngAddressDetailsController', ['$scope', function ($scope,$routeParams) 
{ 
    alert($routeParams); 
    $scope.id = $routeParams.id; 
}]); 

index.html

<!doctype html> 
<html ng-app="ngAddressBook"> 
<head> 
    <title>Ng Addressbook</title> 
    <link href="main.css" rel="stylesheet" media="screen" /> 
</head> 
<body> 
    <div ng-controller="ngAddressListController"> 
     <div id="container"> 
      <h1>Ng Address Book</h1> 
      <div id="content" ng-view> 
      </div> 
     </div> 
    </div> 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.1/angular.min.js"></script> 
    <script src = "angular-route.min.js"></script> 
    <script src="main.js"> </script> 
</body> 
</html> 
+0

вы связываете ли угловой маршрут .js в вашем коде? – Alborz

+0

@Alborz offcourse я сделал. Вопрос обновлен. Маршруты работают, я просто не могу получить параметры – Volatil3

ответ

11

Существует проблема в инъекции параметров контроллера. Вы не добавили $routeParams в список впрыска массива.

ngAddressBook.controller('ngAddressDetailsController', ['$scope','$routeParams', function ($scope,$routeParams) 
{ 
    alert($routeParams); 
    $scope.id = $routeParams.id; 
}]); 
+0

Да, я только что проверил документы и, похоже, сделал 1.3 внесенные изменения в инъекцию $ routeParams. – Volatil3

+0

В вашем случае проблема с инъекцией. – Alborz

1

Как я нашел это на вершине на Google: кроме отсутствующей инъекции - Asign объекта $routeParams и не ключ $routeParams.id

I found the explination here (from Sander Elias)

ngAddressBook.controller('ngAddressDetailsController', ['$scope','$routeParams', function ($scope,$routeParams) 
{ 
    $scope.id = $routeParams 
    alert($routeParams); 
}]); 
Смежные вопросы