2014-01-08 5 views
1

Я следую за угловым учебным журналом Google (разные имена для нужного мне материала), и я не могу заставить маршрутизацию работать правильно для жизни меня. Если я беру # из hrefs, я получу «не может получить» ошибка». С #, изменения URL, но ничего не происходит.Угловые маршруты (учебник) не работают

controllers.js

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

AppControllers.controller('homeCtrl', ['$scope', '$http', 
    function($scope, $http){ 
    $http.get('javascripts/apprentices.json').success(function(data){ 
     $scope.apprentices = data; 

    }); 
    $scope.orderProp = 'semester'; 
}]); 

AppControllers.controller('apprenticeCtrl',['$scope', '$routeParams', 
    function($scope, $routeParams) { 
console.dir('hi'); 
     $http.get('javascripts/person.json').success(function(data) { 
     // $scope.apprentices = data; 
     }); 
    }]); 

app.js

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

App.config(['$routeProvider', 
    function($routeProvider) { 
    $routeProvider. 
    when('/apprentices', { 
     templateUrl: 'views/apprentice.html', 
     controller: 'apprenticeCtrl' 
     }). 
     otherwise({ 
     templateUrl:'../views/home/index.html', 
       redirectTo: '/asfsfsf' 
     }); 
    }]); 

index.html

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
    <title></title> 
    <link rel="stylesheet" href="/stylesheets/style.css"> 
    <script src="javascripts/angular/angular.js"></script> 
    <script src="javascripts/angular/angular-route.js"></script> 
    <script src="javascripts/app.js"></script> 
    <script src="javascripts/controllers.js"></script> 
    <body> 
     <div ng-app="App"> 
     <div ng-controller="homeCtrl"> 
      code 
     </div> 
     <div ng-view></div> 
    </body> 
    </head> 
</html> 
+2

Элемент с тегом 'ng-app' должен содержать'

'для' ngRoute' для работы – Daiwei

ответ

2

Похоже, вам просто нужно, чтобы переместить нг-приложение бирку к элементу тела. сферы действия приложение определяется в элементе нг-приложения, а не его братья и сестры:

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
    <title></title> 
    <link rel="stylesheet" href="/stylesheets/style.css"> 
    <script src="javascripts/angular/angular.js"></script> 
    <script src="javascripts/angular/angular-route.js"></script> 
    <script src="javascripts/app.js"></script> 
    <script src="javascripts/controllers.js"></script> 
    <body ng-app="App"> 
     <div> 
     <div ng-controller="homeCtrl"> 
      code 
     </div> 
     <div ng-view></div> 
    </body> 
    </head> 
</html> 

Другим вариантом было бы поставить нг ракурса DIV внутри нг-приложения DIV при желании.

+0

Это исправило мою первоначальную ошибку, спасибо. Теперь это говорит мне, что 404 не могут найти мои файлы, когда маршрут изменится. GET http: // localhost: 3000/views/apprentice.html 404 (не найдено) – NoobException

+0

Я не знаю вашу структуру каталогов, но это похоже на ваши шаблоны. У вас есть '' 'views/apprentice.html''' для ученика который отличается от '' '../ views /' '' для index.html. –

Смежные вопросы