我试图在angularjs到达以下网址时定义默认路由
默认路由应转到下面的主页。
如何使用$ urlRouterProvider定义它?下一行似乎没有什么区别。
$urlRouterProvider.otherwise('/');
有什么建议吗?谢谢!
appl.config(['$stateProvider', '$urlMatcherFactoryProvider', '$locationProvider', '$urlRouterProvider',
function ($stateProvider, $urlMatcherFactoryProvider, $locationProvider, $urlRouterProvider) {
$urlMatcherFactoryProvider.caseInsensitive(true);
$stateProvider
.state('home', {
url: '',
templateUrl: 'search',
controller: 'applCtrl'
})
.state('person', {
url: '/person',
templateUrl: 'Person',
controller: 'applPersonCtrl'
})
$urlRouterProvider.otherwise('/');
$locationProvider.hashPrefix(''); //it defaults to ! after angularjs 1.5
}]);
答案 0 :(得分:1)
您可以在网站的网址上进行匹配(以/结尾),并按如下所示明确进入首页状态,同时还具有未找到的网址条件:
$urlRouterProvider.otherwise(function ($injector, $location) {
var $state = $injector.get('$state');
if ($location.$$url === '' || $location.$$url === '/') {
$state.go('home');
return;
}
$state.go('notFound'); // some custom not found page
});