AngularJS v1.7.4
Я новичок в AngularJS и создаю простое приложение, но не уверен, почему работает один маршрут (показывает статический html из частичного файла, а также {{message}}
правильно), нодругие два маршрута показывают только статический HTML, а не {{message}}
, который устанавливается с помощью $scope.message
.
Дополнительные ошибки, такие как
Контроллер с именем 'ContactController' не зарегистрирован.
и
Контроллер с именем «AboutController» не зарегистрирован.
Видны в консоли при попытке перейти на страницы «Контакт» и «О» соответственно.
Для трехМаршруты у меня есть три файла HTML и три файла контроллера.Я убедился, чтобы включить <body ng-app="gmsApp">
.
Файлы загружаются как
<script src="./js/bootstrap.bundle.min.js"></script>
<script src="./js/angular.js"></script>
<script src="./js/angular-route.js"></script>
<script src="./js/controllers/about.controller.js"></script>
<script src="./js/controllers/contact.controller.js"></script>
<script src="./js/controllers/home.controller.js"></script>
<link href="./css/bootstrap.min.css" rel="stylesheet" />`
Следуя советам других постов, я использую «обычные» js-файлы, а не «минимизированные» версии angular и angular-route.
Код в основном html-файле:
var app = angular.module("gmsApp", ['ngRoute', 'gmsApp.controllers']);
app.config(['$routeProvider', function($routeProvider) {
$routeProvider.
when('/home', {
templateUrl: 'partials/home.html',
controller: 'HomeController'
}).
when('/about', {
templateUrl: 'partials/about.html',
controller: 'AboutController'
}).
when('/contact', {
templateUrl: 'partials/contact.html',
controller: 'ContactController'
}).
otherwise({
redirectTo: '/home'
});
}]);
/ js / controllers / home.controller.js
angular.module('gmsApp.controllers', [])
.controller('HomeController', function ($scope) {
$scope.message = 'Main page of the app';
});
/ js / controllers / about.controller.js
angular.module('gmsApp.controllers', [])
.controller('AboutController', function ($scope) {
$scope.message = 'This is about us page';
});
/ js / controllers / contact.controller.js
angular.module('gmsApp.controllers', [])
.controller('ContactController', function ($scope) {
$scope.message = 'Contact Us page ...';
});
/ partials / home.html
<div ng-controller="HomeController">
<h3>Home page</h3>
<p>{{message}}</p>
</div>
/ partials / about.html
<div ng-controller="AboutController">
<h3>About Us</h3>
<p>{{message}}</p>
</div>
/ partials / contact.html
<div ng-controller="ContactController">
<h3>Contact Us</h3>
<p>{{message}}</p>
</div>