2015-06-29 4 views
4

Я пытаюсь настроить некоторые основные маршруты в своем приложении Angular, но, похоже, не может получить ngView для правильной работы. Ниже мое отношение index.html кода модуля и конфигурации:Угловой маршрут не работает

index.html:

<body ng-app="myApp"> 
    <h3>Testing is live</h3> 
    <div ng-view></div> 
</body> 

app.module.js:

angular.module('myApp', ['ngRoute', 'ngResource']); 

app.config.js:

angular.module('myApp') 
    .config(function($routeProvider, $locationProvider) { 
    $routeProvider.when('/player/:playerId', 
     { 
     template: '<h1>testing...</h1>', 
     controller: 'PlayerInfoController', 
     controllerAs: 'playerInfo' 
     } 
    ); 

    $locationProvider.html5Mode({ 
     enabled: true, 
     requireBase: false, 
     rewriteLinks: false 
    }); 
    }); 

Когда я посещаю /player/56, например, я вижу, что «Тестирование в прямом эфире», но не «тестирование ...», как я ожидал. Вместо этого в этом разделе есть <!-- ngView: -->.

+3

Просто FYI , из того, что вы опубликовали, вы дважды объявляете модуль «myApp». Если вы хотите создать новый модуль, вы используете массив и передаете свои зависимости. Когда вы просто хотите ссылаться на этот модуль, не используйте массив. – jme11

+0

Спасибо, отредактирован. – MattDionis

ответ

1

Я сделал два изменения вышеприведенного кода, чтобы заставить его работать, но я не совсем понимаю, почему это было необходимо; мне кажется, что это «хакерское» решение.

В моем файле конфигурации:

$locationProvider.html5Mode({ 
    enabled: true, 
    requireBase: false, 
    rewriteLinks: false 
}); 

был заменен:

$locationProvider.html5Mode(true); 

и я добавил следующее к head моего index.html файла:

<base href="/player"> 
+0

Похоже, вы прочитали тот же учебник, что и я. Вы решили одну мою проблему. – Rodmentou

0

После того, как вы решите проблему двойной декларации, можете ли вы сказать, что маршрут вообще ударяется? Будет ли console.log в том, что PlayerInfoController будет вызван в вашей консоли инструментов Chrome, когда вы перейдете к этому маршруту? Или вы получаете какую-либо ошибку?

+0

Консоль.log никогда не срабатывает, поэтому мой контроллер никогда не запускается для этого маршрута. Кроме того, нет сообщения об ошибке. – MattDionis

+0

Вы включаете файл в свой файл index.html, который загружается? Каждый файл angularjs необходимо загружать отдельно. Таким образом, вам понадобится тег скрипта, содержащий файл app.js и тег скрипта, который загружает ваш файл конфигурации. –

+0

Да, необходимые файлы включены в index.html. Я просто оставил их вне кода, который я опубликовал, чтобы сохранить сообщение кратким. – MattDionis

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