如何在AngularJS中定义默认路由?
How to define a default route in AngularJS?
我试图在 angularjs 命中以下 url
时定义默认路由
默认路由应该转到下面的主页。
如何使用 $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
}]);
您可以在您网站的 url 上进行匹配(带有尾随 /)并按如下方式明确转到主页状态,同时还具有未找到 url 条件:
$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
});
我试图在 angularjs 命中以下 url
时定义默认路由默认路由应该转到下面的主页。
如何使用 $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
}]);
您可以在您网站的 url 上进行匹配(带有尾随 /)并按如下方式明确转到主页状态,同时还具有未找到 url 条件:
$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
});