我正在使用AngularJS和ui-router以及app.js
。我有以下几行:
$urlRouterProvider.otherwise('/');
但是我不希望它将用户发送到网址,而是而不是 发送到州:
.state('404',
{
views: {
'body': {
templateUrl: 'partials/404.html',
}
}
});
通常我会这样做:
$state.go('404');
如何为其他方法执行此操作?
注意:我的404状态没有URL,所以基本上它保留了用户输入或访问过的URL,只是更改了模板。
答案 0 :(得分:24)
我认为你用这段代码实现了这个目标
$urlRouterProvider.otherwise(function($injector, $location){
$injector.invoke(['$state', function($state) {
$state.go('404');
}]);
});
答案 1 :(得分:3)
试试这个。
~O(n^log2(3))
答案 2 :(得分:1)
@ kdlcruz的回答只是一个小改进:
$urlRouterProvider.otherwise(function($injector){
$injector.invoke(['$state', function($state) {
$state.go('404', {}, { location: false } );
}]);
});
通过这样做,您仍然可以保持URL的错误,并且只更改状态。