2016-10-01 6 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.htmlindex.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を注入することを忘れないでください$window.location.href = "/#/app/accounts";

を試してみてください。

しかし、より良い方法が$stateサービスを注入してナビゲートするためにそれを使用することです:

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

OKので、私は 'のhref =「#/アプリ/アカウント」をやった'とエラーがなくなっていますが、代わりに私を 'app'状態(元の状態)にリダイレクトします。なぜなのかご存知ですか? – Bolboa

+0

おそらくルートに何か問題があり、ルート定義の.otherwise()メソッドに入っています – MarBVI

+0

しかし、$ stateProviderを使用している場合、リダイレクトを行う最良の方法は$ state.go( 'app.accounts ') – MarBVI

関連する問題