2017-01-31 4 views
0

ログインに成功した後、ページに移動しようとしています。ログインページは、inappbrowser経由で呼び出されるWebページです。ここで、In AppBrowserがユーザーの認証に成功すると、そのビューにナビゲートする必要があります。

私は$ location.pathを使用し、パスを正しく変更します。しかし、ロード時にデバイスに表示されません(Chromeでは正しく表示されます)

window.location.reload(true)ステートメントを追加すると、必要なページがロードされて読み込まれます再び。

私はどのように停止するのですか?今app.js

.state('app.playlists', { 
    url: '/playlists', 
    views: { 
    'menuContent': { 
     templateUrl: 'templates/playlists.html', 
     controller: 'PlaylistsCtrl' 
    } 
    } 
}) 

で今

.service('LoginService',function($q,$rootScope,$cordovaInAppBrowser,$http,$state,jwtHelper,$location) { 
return { 
    loginUser: function() { 
     var deferred = $q.defer(); 
     var promise = deferred.promise; 
    $cordovaInAppBrowser.open(url).then(function(event) {  
    console.log(event); 
    // success 
    }) 
$rootScope.$on('$cordovaInAppBrowser:loadstop', function(e, event){ 
if(userIsValid){ 
deferred.resolve(username); //Here i validate the user and change the location 
$location.path('app/playlists'); 
       } 
} 

promise.success = function(fn) { 
      promise.then(fn); 
      return promise; 
     } 
     promise.error = function(fn) { 
      promise.then(null, fn); 
      return promise; 
     } 
     return promise; 
    } 
} 

、LoginController

.controller('LoginCtrl', function($scope,$timeout,$rootScope,LoginService, $ionicPopup, $state,$location) { 
$scope.login = function() {  
    LoginService.loginUser().success(function(data) { 
     console.log(data);   
}).error(function(data) { 
     var alertPopup = $ionicPopup.alert({ 
      title: 'Login failed!', 
      template: 'Please check your credentials!' 
     }); 
    }); 

} 

}) }

答えて

1

であなたはwindow.location.reloadを使用すべきではありません。 $ locationモジュールを組み込み、状態ルータをリセットする$route.reload()を実行する必要があります。 $state.reload();$state.go($state.current, {}, {reload: true});

ルートベースのナビゲーションでは、IONICキャッシングに問題があることを知っています。これをチェックしてください。$ionicConfigProvider.views.maxCache(0); IONICが設定されている場所に追加する必要があります。

+0

再生リストのコントローラに入るので、$ state.go($ state.current、{}、{reload:true})を配置しました。プレイリストのコントローラでは動作しません(エラーなし)。イオンは$ルートの依存関係をサポートしていますが、注入できませんでした。テストプログラムは本当にありがたいです –

+0

イオンキャッシングはちょっと変です。あなたのionic設定ファイルに '$ ionicConfigProvider.views.maxCache(0)'を追加してみてください。あなたはこの@SouravDas – user3236101

+1

のために使用しているビューを見ることはできますか?問題は、InAppBrowserで、私はそれを閉じませんでした:P –

関連する問題