【发布时间】:2017-09-06 09:33:55
【问题描述】:
所以我是 Angular 的新手,并试图弄清楚多条路由如何导致相同的 view/templateUrl 和控制器。这是我写的:
angular
.module('mwsApp', [
'ngAnimate',
'ngCookies',
'ngResource',
'ngRoute',
'ngSanitize',
'ngTouch',
'ui.bootstrap'
])
.config(function ($routeProvider, $locationProvider) {
// debugger
$routeProvider
.when('/', {
templateUrl: 'index.html',
controller: 'MainCtrl as vm',
})
.when('/rika', {
templateUrl: 'index.html',
controller: 'MainCtrl as vm',
})
// .otherwise({
// redirectTo: '/'
// });
$locationProvider.html5Mode(true).hashPrefix("!");
});
问题:目前,如果我转到“localhost:9000/”,它会显示正确的版本,但如果我转到“localhost:9000/rika”,它会显示“无法获取 /rika”。
调试:我已将问题范围缩小到 html5Mode。我正在尝试摆脱 #! Angular 会自动添加到 URL 中,但是当我这样做时,会弹出错误。
感谢任何人的意见!
【问题讨论】:
-
你无法摆脱地址散列,这违背了使用 Angular(也是 AJAX'ing)等路由的目的......
-
是的,你可以,我没有亲自摆弄它,但它是可能的
-
看看this SO
-
我想人们每天都会学到一些新东西。为了什么好处,这似乎很麻烦?
-
你可以使用
$stateProvider来解决这个问题
标签: javascript angularjs html5mode