AngularJS ui-router否则为状态而不是url?

时间:2014-10-03 14:43:29

标签: javascript angularjs angular-ui-router

我正在使用AngularJSui-router以及app.js。我有以下几行:

$urlRouterProvider.otherwise('/');

但是我不希望它将用户发送到网址,而是而不是 发送到州

.state('404',
        {
            views: {
                'body': {
                    templateUrl: 'partials/404.html',
                }
            }
        });

通常我会这样做:

$state.go('404');

如何为其他方法执行此操作?

注意:我的404状态没有URL,所以基本上它保留了用户输入或访问过的URL,只是更改了模板。

3 个答案:

答案 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的错误,并且只更改状态。