2016-06-24 10 views
1

私の質問は以前は悪かったので、すべてを書き直しました。

私は、州ごとのナビゲーションにui.routerを使用しています。

通常、新しい状態をロードすると、テンプレートとコントローラがリフレッシュ/リロードされます。テンプレート内にng.repeatng.ifという2つの文字列があるため、最初はビューが空の変数でレンダリングされ、コントローラが再びデータをフェッチした後に再びレンダリングされるため、ちらつきが発生します。

私の考えは、すべての州のメインコントローラのためのインターフェイスメソッド(たとえば、「再アクティブ化」)を定義することです。このメソッドはナビゲーションメニューから呼び出すことができます。ここで私は州を設定します。 これは実際にはかなりうまく動作します。別のものに切り替えながらどのように私は$state(レンダリングされたHTML、コントローラの状態)の状態を保つことができ、そして場合は、私がした場所が引き続き再入力:

var controllerScope = angular.element($('#content')).scope(); 
controllerScope.reactivated(); 

私の質問はありますか?

答えて

0

またはユーザーがアクティブリンクに

$rootScope.$on('$stateChangeStart', 
     function(event, toState, toParams, fromState, fromParams){ 
      event.preventDefault(); 
      // transitionTo() promise will be rejected with 
      // a 'transition prevented' error 
}) 
をクリックした場合は、状態変化を防ぐことができます
関連する問題