我想使用$ locationProvider.html5Mode(true)删除angularJs中的#hash;但这导致所有URL都通过angularJs路由。我如何设置它以便只有一些预定义的URL通过angularJs路由,而其余的仍然使用Laravel。
代码是:
app.config(['$routeProvider', '$locationProvider',
function($routeProvider, $locationProvider) {
$routeProvider
.when('/alls', {
templateUrl: app.site_url + 'ang/index',
controller: 'MainCtrl'
})
.when('/alls/page/:page', {
templateUrl: app.site_url + 'ang/index',
controller: 'MainCtrl'
})
.otherwise({
redirectTo: '/alls'
});
$locationProvider.html5Mode(true);
}
]);
因此,如果它不是/ alls或/ alls / page /,Laravel应该处理路由。
答案 0 :(得分:3)
我尝试使用<base href=".">
,如:http://docs.angularjs.org/guide/dev_guide.services。$ location所述。但它不起作用。
我终于开始工作了。这是解决方案:
app.config(['$routeProvider', '$locationProvider',
function($routeProvider, $locationProvider) {
$routeProvider
.when('/alls', {
templateUrl: app.site_url + 'ang/index',
controller: 'MainCtrl'
})
.when('/alls/page/:page', {
templateUrl: app.site_url + 'ang/index',
controller: 'MainCtrl'
})
.otherwise({
templateUrl: app.site_url + 'ang/index',
controller: function(){
window.location.href = window.location.href;
}
});
$locationProvider.html5Mode(true);
}
]);
希望它会帮助别人。