Я начинаю с AngularJS и задаю следующий вопрос. Я играю с модулем ngRoute и это мой код до сих пор:Угловой ngRoute - Не удается создать страницу, если введите url вручную
HTML:
<nav ng-controller="navController as nav">
<ul>
<li ng-repeat="item in navItems">
<a href="{{ item.url }}">{{ item.name }}</a>
</li>
</ul>
</nav>
<div id="main">
<div ng-view></div>
</div>
app.js
(function(window) {
var app = angular.module('app', ['ngRoute']);
app.config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {
$routeProvider
.when('/', {
templateUrl : 'pages/home.html',
controller : 'mainController'
})
.when('/contact', {
templateUrl : 'pages/contact.html',
controller : 'contactController'
});
if (window.history && window.history.pushState) {
$locationProvider.html5Mode(true);
}
}]);
app.controller('mainController', ['$scope', function($scope) {
$scope.message = 'Hello from home page';
}]);
app.controller('contactController', ['$scope', function($scope) {
$scope.message = 'Hello from contact page';
}]);
app.controller('navController', ['$scope', function($scope) {
$scope.navItems = [
{ name: 'Home', url: '/' },
{ name: 'Contact', url: '/contact' }
];
}]);
})(window);
И это прекрасно работает. Угловое меню рендеринга, и когда я нажимаю на ссылку, он показывает мне желаемую страницу. Но за исключением следующего случая. Когда он отображает главную страницу (url: http://localhost:3000), и я вручную добавляю адрес url "/ contact", тогда я получаю пустую страницу с ошибкой "Can not GET/contact". Может ли кто-нибудь объяснить мне, почему это происходит, и как я могу это исправить? Буду признателен за любую помощь. Благодарю.
пытаются добавить #/контакт – Reena
Вы имеете в виду в URL? Да, тогда это работает. Но пользователь, вероятно, не будет вводить #/contact;] Скорее всего, я не должен об этом беспокоиться, но мне любопытно, есть ли у него исправления. – covfefe
Я хотел, чтобы вы набрали вручную? – Reena