2016-10-01 73 views
0

我正在使用角$stateProvider允許路由通過我的應用程序。我有一個index.html,我更改HTML內容的內部使用以下...

app.config(function($stateProvider, $urlRouterProvider) { 
    $urlRouterProvider.otherwise('/app'); 
    $stateProvider 

    .state('app', { 
     url: '/app', 
     templateUrl: 'templates/menu.html', 
     controller: 'AppCtrl' 
    }) 
    .state('app.accounts', { 
     url: '/accounts', 
     templateUrl: 'templates/accounts.html' 
    }) 
}); 

第一條路線的作品,當你打開應用程序template/menu.html在裏面放index.html。當我嘗試更改狀態時會出現問題。

目前,我實現我的應用程序的API,該API做什麼是無關緊要的,但成功我想API將狀態更改爲app.accounts,見下文......

app.controller('AppCtrl', function($scope, $ionicModal, $timeout) { 
    $scope.create = function() { 
    var linkHandler = Plaid.create({ 
    env: 'tartan', 
    clientName: 'Example Project', 
    key: 'test_key', 
    product: 'connect', 
    //On success I want to change the state 
    onSuccess: function(token) { 
     window.location = '/app/accounts'; 

    }, 
    }); 
    linkHandler.open(); 
    } 

}); 

上述操作成功,我試圖改變狀態,但是當window.location被調用時,我得到的錯誤...

net::ERR_FILE_NOT_FOUND (file:///app/accounts) 

我不知道爲什麼我得到這個錯誤,因爲第一個路由工作正常。任何想法如何我可以解決這個問題?

回答

1

您的路徑錯誤。這就是錯誤所說的。它找不到那條路線。

嘗試$window.location.href = "/#/app/accounts";

記得在控制器注入$window

但是一個更好的方式是注入$state服務,並用它來導航:

$state.go('app.accounts') 
+0

行,所以我做了'HREF =「#/應用/賬戶」'和錯誤走了,但它會將我重定向到「應用程序」狀態(原始狀態)。你知道爲什麼嗎? – Bolboa

+0

可能是路由有問題,並且它正在進入路由定義的.otherwise()方法 – MarBVI

+0

但是,如果您使用的是$ stateProvider,則重定向的最佳方法是使用$ state.go('app.accounts ') – MarBVI