簡體   English   中英

AngularJS ui-router否則為狀態而不是url?

[英]AngularJS ui-router otherwise to state instead of url?

我在我的app.js使用AngularJSui-router 我有以下幾行:

$urlRouterProvider.otherwise('/');

但是, 我不希望它將用戶發送到URL而是 發送到以下狀態

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

通常我會這樣做:

$state.go('404');

如何為其他方法執行此操作?

注意:我的404狀態沒有URL,所以基本上它保留了用戶輸入或訪問過的URL,只是更改了模板。

我想你用這段代碼實現了這一點

$urlRouterProvider.otherwise(function($injector, $location){
  $injector.invoke(['$state', function($state) {
    $state.go('404');
  }]);
}); 

試試吧

$urlRouterProvider.otherwise(function($injector, $location){
    $injector.get('$state').go('404');
});

對@ kdlcruz的回答只是一個小改進:

$urlRouterProvider.otherwise(function($injector){
    $injector.invoke(['$state', function($state) {
        $state.go('404', {}, { location: false } );
    }]);
});

通過這樣做,您仍然可以保持不正確的URL,並且只更改狀態。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM