2016-08-09 5 views
1

に移動します。

私が見つけたのは、私が$state.reload()と呼んでいる2度目は機能していないということです。これは望ましい動作ですか?このリロードを強制するには何ができますか?

if(advanceComplexAction()) { 
    console.log(self.$state); //This is always been printed in console 
    self.$state.reload(); 
} 
else { 
    closeActionWizard(); 
} 

私は私のコンソールをチェックしてるとはconsole.logは常に印刷されますが、私の声明self.$state.reload()は正しく、私はそれを呼び出す最初の時間を実行します。

EDIT:

私は最初のリロードを行うと、親URLに変更されたとき、私は私のURLの変更ことに気づきました。 3回目はparentStateをリロードするだけなので、問題になるはずです。

http://localhost:1234/app/parentstate/childstate 

リロードを使用した後、すべてが、それは親状態に移行働いていた:私は正しく私のURLを働いているこの

まず時間を解決する方法がわからないです。

http://localhost:1234/app/parentstate 

したがって、再度読み込みを行うと、親ビューのみが再読み込みされます。私は私のルートを以下のように定義しています。

.config(function($stateProvider, modalStateProvider){ 
    $stateProvider 

.state('app.parentstate', 
    modalStateProvider.create({ 
    animation: true, 
    name: 'app.parentsate', 
    url: 'apps/parentstate', 
    controllerAs: 'parentCtrl', 
    controller: 'ParentCtrl', 
    windowClass: 'semi-modal semi-modal--XXL', 
    templateUrl: function() { 
     return 'app/ui/apps/parent/parent.html'; 
    }, 
    resolve: { 
     //Some resolve function 
     }] 
    } 
    }) 
) 
.state('app.parentstate.childstate', 
    modalStateProvider.create({ 
    animation: true, 
    name: 'app.parentstate.childstate', 
    url: '/childstate', 
    controllerAs: 'childWizardCtrl', 
    controller: 'ChildWizardCtrl', 
    windowClass: 'semi-modal semi-modal--XL', 
    templateUrl: function(){ 
     return 'app/ui/apps/child/child.html'; 
    } 
    }) 
) 

は、私はそれを得るあなたが

+0

をありがとう - あなたの質問は、可能性が高くなります超簡単な '' 'plnkr'''例を作成するには... –

+0

I常に使用される$ state.reload()に答え取得します。私はあなたが唯一の子の状態をリロードする必要があるので、 –

+0

@DineshSundaraneedi **自己**(セルフ。$状態)について知って興味を持って? – acostela

答えて

0

私はそれを解決してください "の$ state.reloadを" 使用しないようする必要があります!問題は私のmodalStateの実装にありました。私は、私の状態が同じか、私がそれを閉じると、私の親状態に自動的に移動するOnEnter関数を持っています。

 modalInstance.result 
     .then(function(result) { 
     $log.debug('Modal result', result); 
     }, function(rejection) { 
     $log.debug('Modal dismissed at: ' + new Date() + ' because ' + rejection); 
     }) 
     .finally(function() { 
     modalInstance = null; 
     if ($state.$current.name === options.name) { 
      $state.go('^', $stateParams, { reload: options.reload }); //Here we are moving to parent state 
     } 
     }); 

これを変更すると私の問題が解決します。いつものようにご回答

0

たぶん、あなたは

$state.transitionTo('current_state', null, {'reload':true}); 
+0

いいえ、私がそうすると、私の$状態は親の状態に移行しています。 – acostela

+0

'current_state'を$ state.currentなどで置き換えましたか? – DMCISSOKHO

+0

はい。私はリロードを行うときに私のアプリで何が起こっているのかわからない。注入された$状態の依存関係は、親からのものに変更され、その瞬間は破損します。 – acostela

0

ような何かをしようとsouldありがとうございました!親状態をリフレッシュ:

$state.reload(); 

$state.transitionTo($state.current, $stateParams, { reload: true, inherit: false, notify: true }); 

"真のリロード" の別名です!あなたは

ではなく

window.location.reload(true) 
+0

私のアプリ全体が再読み込みされていて、うまくいきません。貴重な情報が失われています。私は子供の状態だけをリロードする必要があります。私は自分のアプリケーション全体に問題があることに気づいた。再読み込み後に状態をリロードしようとするすべての状態で、注入された$状態が親状態に変更されます。 – acostela

関連する問題