我希望有一个包含两种不同模式的网址,例如:
label
和
http://127.0.0.1:27469/views/Home.html#/forcast
正如你所看到的,我在第二个uri中也向服务器发送了一个参数。为此,我做了这个路由
http://127.0.0.1:27469/views/Home.html#/forcast/7
但是我得到了一个错误:
app.config(function($routeProvider){
$routeProvider
.when('/forcast',{
templateUrl:'forcast.html',
controller:'forcastController'
});
when('/forcast/:days',{
templateUrl:'forcast.html',
controller:'forcastController'
})
});
此代码有什么问题?
答案 0 :(得分:2)
您没有正确链接函数调用。你正在用分号结束第一个.when()。此外,您错过了第二次()之前的时段。您还将遇到一个问题,即您的所有请求都将在没有参数的情况下进入路由,切换路由的顺序,以便在提供参数时,它将以正确的路径着陆。
app.config(function($routeProvider){
$routeProvider
.when('/forcast/:days',{
templateUrl:'forcast.html',
controller:'forcastController'
})
.when('/forcast',{
templateUrl:'forcast.html',
controller:'forcastController'
});
});
另一个建议,而不是在此声明2条路线,您可以将天数指定为可选参数:
app.config(function($routeProvider){
$routeProvider
.when('/forcast/:days?', {
templateUrl: 'forcast.html',
controller: 'forcastController'
});
});
答案 1 :(得分:1)
问题在于你的语法。你有一个分号后的第一个时间,应该是一个时期。像这样:
app.config(function($routeProvider){
$routeProvider
.when('/forcast',{
templateUrl:'forcast.html',
controller:'forcastController'
})
.when('/forcast/:days',{
templateUrl:'forcast.html',
controller:'forcastController'
});
});

答案 2 :(得分:-3)
当您无法加载某个模块时会出现此类错误!
确保将ng-route.js
添加到您的html:
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular-route.min.js">