2016-04-27 5 views
0

Моя функция угловой маршрутизации не работает - есть загрузка страницы, но без файла 'home.html'. Это мой код:Функция маршрутизации AngularJS не работает

Index.html

<html ng-app="App" class="no-js" lang="en" > 
<head> 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-route.min.js"></script> 
    <script src="app.js"></script>  
    </head> 

    <body ng-cloak> 
    <div ng-controller="main"> 
     <div ng-view></div> 
    </div> 
    </body> 
</html> 

app.js

(function() { 
'use strict'; 

angular 
    .module('App', ['ngRoute']) 
    .controller('$routeProvider', router) 
    .controller('main', main); 

function router($routeProvider) { 

    $routeProvider. 
      when('/', { 
      templateUrl: '_pages/home.html', 
      controller: 'main' 
      }); 

}; 
function main ($scope) { 
console.log("done"); 
} 
+0

Вы точно знаете, что структура структуры неправильная? EDIT: этот файл узла находится в том же каталоге, что и папка _pages? – Olly

+0

Директория должна быть в порядке - home.html находится в подпапке (файл выше: index.html - это один уровень папки вверх) –

+2

материал маршрутизатора должен быть в '.config', у вас есть его в контроллере – reptilicus

ответ

3

Угловые $ провайдеры работают только в состоянии конфигурации. eg:

angular 
.module('App', ['ngRoute']) 
.config(['$routeProvider', router]); 
function router($routeProvider) { 

    $routeProvider. 
     when('/', { 
     templateUrl: '_pages/home.html', 
     controller: 'main' 
     }); 

}; 
+0

Большое спасибо - это работает с [] вокруг $ routeprovider ... –

+0

Добро пожаловать. –

3

Конфигурация маршрута выполняется в конфигурации, а не контроллер. Измените свой код, как показано ниже:

(function() { 
    'use strict'; 

    angular 
    .module('App', ['ngRoute']) 
    .config(router) 
    .controller('main', main); 

    function router($routeProvider) { 

    $routeProvider. 
     when('/', { 
     templateUrl: '_pages/home.html', 
     controller: 'main' 
     }); 

    }; 

    function main ($scope) { 
    console.log("done"); 
    } 
}); 
+0

К сожалению. Мы ответили в то же время. Ваше решение отлично. :) –

+0

Его хорошо. Ваше решение работает тоже :) –

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