我正在学习Angular,并且我在路由方面遇到了问题。我自己试图解决它,但不知道它可能是什么。 这是我的脚本和我的脚本 Plunker link
var singleApp = angular.module('singleApp', ['ngRoute'])
.config([$routeProvider, $locationProvider, function($routeProvider, $locationProvider) {
$routeProvider
.when('/', {
templateUrl: 'pages/home.html',
controller: 'mainController'
})
.when('/about', {
templateUrl: 'pages/about.html',
controller: 'aboutController'
})
.when('/contact', {
templateUrl: 'pages/contact.html',
controller: 'contactController'
});
// Deletes # in URL with HTML History API
$locationProvider.html5Mode(true);
}])
.controller('mainController', function($scope) {
$scope.message = 'This is the main page';
})
.controller('aboutController', function($scope) {
$scope.message = 'This is the about page';
})
.controller('contactController', function($scope) {
$scope.message = 'This is the message page';
});
我已经在html中导入了angular和routing脚本。 页面只有$ message
答案 0 :(得分:4)
第一个问题是您的配置。您通过使用数组进行注射使用了一个很好的做法,但第一个参数必须是字符串。改变这个:
.config([$routeProvider, $locationProvider, function($routeProvider, $locationProvider) {
到这个
.config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {
然后......删除这一行:
$locationProvider.html5Mode(true);
以下是有关HTML5模式的信息:
https://docs.angularjs.org/error/$location/nobase
答案 1 :(得分:1)
你有语法错误,配置功能应该是这样的
.config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {
答案 2 :(得分:0)
删除以下行
//Deletes # in URL with HTML History API
$locationProvider.html5Mode(true);
许多错误,特别是引用可以在浏览器控制台中查看它们 您必须修改配置的参数,应该顺利
.config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {
答案 3 :(得分:0)
比较并查看您的代码
var singleApp = angular.module('singleApp', ['ngRoute'])
singleApp.config(function($routeProvider) {
$routeProvider
.when('/', {
templateUrl: 'pages/home.html',
controller: 'mainController'
})
.when('/about', {
templateUrl: 'pages/about.html',
controller: 'aboutController'
})
.when('/contact', {
templateUrl: 'pages/contact.html',
controller: 'contactController'
});
});
singleApp.controller('mainController', function($scope) {
$scope.message = 'This is the main page';
});
singleApp.controller('aboutController', function($scope) {
$scope.message = 'This is the about page';
});
singleApp.controller('contactController', function($scope) {
$scope.message = 'This is the message page';
});