アニメーションを使用してビュー間を遷移するために ng-view を使用しています (Angular 1.2RC1)。アニメーションの方向を決定するために、場所の変更を呼び出す前に、ng-view div に slide-left または slide-right のいずれかのクラスを挿入しています。残すアニメーション (最初に実行) は機能しますが、クラスが ng-view div から削除されます。
次のように、サービスを使用して、左にスライドするか右にスライドするかを決定します。
$scope.slideView = function(index, url){
if ( viewSlideIndex.getViewIndex() > index) {
$('#slideview')
.toggleClass("slide-left", false)
.toggleClass("slide-right", true);
}
else {
$('#slideview')
.toggleClass("slide-left", true)
.toggleClass("slide-right", false);
};
$location.url(url);
}
ng-view div のクラスを更新します。
<button ng-click='slideView(1, "/pg1")'>Pg1</button>
<button ng-click='slideView(2, "/pg2")'>Pg2</button>
<button ng-click='slideView(3, "/pg3")'>Pg3</button>
<div id="slideView" ng-view class="slide-right"></div>
slideView (ng-view) クラスは既にキャッシュされており、完了時に更新されているように見えるので、キャッシュを更新するか、アプローチを変更する方法を知りたいですか?
助けてくれてありがとう。
http://jsfiddle.net/RoryOSiochain/BfJWf/
フィドルでslideViewにslide-leftまたはslide-rightクラスを手動で挿入するとうまくいきます。
更新:上記の Jquery の使用が問題を混乱させないことを願っています。ng-class と jQuery の両方を使用すると、同じ結果/エクスペリエンスが返されます。