2015-05-26 63 views
1

案例中不添加行爲:NG-如果在NG-節目確實

<div class="slide" ng-show="condition" > 

我有一個指令設置爲類,使該幻燈片行爲div時表現出來的。
當我使用ng-if而不是ng-show,以便代碼不會得到執行,除非該條件真的適用,幻燈片行爲不再工作,而ng-show它的工作原理。

有沒有解決這個問題的方法?超時也許?

<div class="slide" ng-if="condition" > 
+0

你能提供你的指令的一些代碼片斷,然後我們就可以知道它是如何工作。 – Rebornix

+0

添加請檢查@Rebornix – sisimh

回答

1

這是預期的。 ng如果動畫的定義與ngShow動畫不同。

正確的方式做動畫是包括ngAnimate模塊,然後包括對每個要進行動畫處理的指令的動畫CSS(如ngIfngShowngRepeat)。

/* ng-if */ 
.slide.ng-enter, 
.animate-if.ng-leave { 
    transition: all 1s; 
} 

.slide.ng-enter, 
.slide.ng-leave.ng-leave-active { 
    transform: translateX(-100px); 
} 

.slide.ng-leave, 
.slide.ng-enter.ng-enter-active { 
    transform: translateX(0); 
} 

/* ng-show */ 
.slide { 
    transform: translateX(0); 
} 

.slide.ng-hide-add.ng-hide-add-active, 
.slide.ng-hide-remove.ng-hide-remove-active { 
    transition: all 1s; 
} 

.slide.ng-hide { 
    transform: translateX(-100px); 
} 
+0

我看,但這個代碼不允許我的動畫指令行爲,你已經創建了自己的幻燈片。我已添加它的代碼請檢查 – sisimh

+0

我想知道是否可以添加一些timout讓它包含我的動畫@Blaise – sisimh

+0

您正在將jQuery與Angular混合使用,但Angular不能以這種方式工作。您應該瞭解AngularJS動畫的工作原理。 – Blaise

1

試試這個代碼

<div ng-class="{slide: true}" ng-if="condition" > 
+0

沒有沒有竅門 – sisimh

+1

嘗試此鏈接https://docs.angularjs.org/api/ngAnimate嘗試標題下的解決方案「基於JavaScript的動畫」 –

+0

感謝您的鏈接多數民衆贊成我需要@ chiragchavada.ks – sisimh