RT、angular-ui でタブを使用してタブを切り替える場合、誰かが更新を押すと、現在のタブの選択状態が記録されず、初期値が返されます。現在のタブの選択状態を記録するにはどうすればよいですか?
私も同じ問題に遭遇しました。最近、会社のマーケティング イベントの [開始] ページで作業していたとき、開始は次のような名前付きビューとして 4 つのステップに分割されていました。 ;p ng-if= "step == 3" ui-view="step-3"></p>、ng-if を使用して表示するステップを決定します、次にコントローラーでstepを次のように設定する方法があります: <p ng-if="step == 3" ui-view="step-3"></p>, 通过ng-if来确定显示第几步, 然后在控制器中有一个方法来设置step,方法如下:
ng-if
step
<p ng-if="step == 3" ui-view="step-3"></p>
$scope.$on('changeStep', function(e, data) { $scope.step = data; });
但是,当编辑到其中某一步时,如果刷新浏览器就会回到第1步状态。一开始我是用localStorage来存储step状态
$scope.step = $localStorage.step ? $localStorage.step : '1'; $scope.$on('changeStep', function(e, data) { $scope.step = data; $localStorage.step = data; }); // 不在发起页面时清除数据 $scope.$on('$stateChangeStart', function(event, toState, toParams, fromState, fromParams) { if (toState.name != 'app.xx.new' || toState.name != 'app.xx.edit' || toState.name != 'app.xx.view') { delete $localStorage.step; } })
这样就可以保存状态了,但是有一个问题是,如果当前编辑到第3步,我又重新开一个窗口从列表页面进入编辑,会直进入第三步,跳过了前二步。后来我也试过$cacheFactory, 一刷新状态就丢失了,所以最后的解决办法是使用sessionStorage リーリー
$cacheFactory
sessionStorage
リーリー
Angularキャッシュファクトリーを参照
私も同じ問題に遭遇しました。最近、会社のマーケティング イベントの [開始] ページで作業していたとき、開始は次のような名前付きビューとして 4 つのステップに分割されていました。 ;p ng-if= "step == 3" ui-view="step-3"></p>、
ng-if
を使用して表示するステップを決定します、次にコントローラーでstep
を次のように設定する方法があります:<p ng-if="step == 3" ui-view="step-3"></p>
, 通过ng-if
来确定显示第几步, 然后在控制器中有一个方法来设置step
,方法如下:但是,当编辑到其中某一步时,如果刷新浏览器就会回到第1步状态。一开始我是用localStorage来存储
step
状态这样就可以保存状态了,但是有一个问题是,如果当前编辑到第3步,我又重新开一个窗口从列表页面进入编辑,会直进入第三步,跳过了前二步。
ただし、あるステップまで編集した場合、ブラウザを更新すると最初のステップに戻ります。最初は、localStorage を使用して后来我也试过
$cacheFactory
, 一刷新状态就丢失了,所以最后的解决办法是使用sessionStorage
リーリーstep
ステータスを保存しましたリーリー
この方法でステータスを保存できますが、現在の編集がステップ 3 に達し、リスト ページから編集に入るためにウィンドウを再度開くと、最初の 2 つのステップをスキップして、直接 3 番目のステップに進みます。 。その後、
$cacheFactory
も試しましたが、更新するとすぐにステータスが失われるため、最終的な解決策はsessionStorage
を使用することでした。この 2 つの使用シナリオを理解するには、コミュニティ array_huang による localstorage の記事を読んでください。 🎜 🎜この方法が必ずしも最適であるとは限りませんが、代替手段として試すことができます。 🎜Angularキャッシュファクトリーを参照