2014-05-17 124 views
1

我想用angularjs做簡單的順序效果。我可以在jQuery中做到這一點,但我不知道使用angularjs做同樣的事情要遵循什麼路徑。什麼是應用順序效果的「angularjs方法」?

爲了使事情具體,這裏是一個簡單的基於jQuery的順序效果,我想用angularjs創建。當我們點擊一​​個標籤時,另一個標籤的文本值將按照固定的時間順序設置爲數組中的每個元素。這方面的一個原型的jsfiddle在

http://jsfiddle.net/mjandrews/U53jy/6/

,其JavaScript代碼

var wordlist = ['A', 'B', 'C', 'D', 'E']; 
var duration = 200; 
var i = 0; 

show_next_word = function() { 
    if (i < wordlist.length) { 
     $('#word').hide() 
      .text(wordlist[i++]) 
      .fadeIn() 
      .delay(duration) 
      .fadeOut(show_next_word // recursively call until end of word list 
     ); 
    } else { 
     i = 0; // re-set index 
    } 
}; 

$('#startbutton').click(show_next_word); 

做同樣的事情的角度,我坦率地說不清楚,甚至開始什麼樹吠叫。

從我的搜索到目前爲止,我發現使用$q service鏈接承諾的討論。這是我應該考慮的嗎?任何人都可以指點我一個有效的例子嗎?如果這不是繼續進行的最佳方式,那麼更類似於$animate?還有什麼我應該考慮的嗎?任何指向更好的方式,將不勝感激。

P.s.這個問題的依據是這個answer的建議,它指出:「當你遇到一個問題,你認爲你已經知道如何在jQuery中解決問題時,在你達到$之前,嘗試考慮如何在限制AngularJS。如果你不知道,問問!「我有一個問題,我知道如何在jQuery中解決。我想做角度的方式。我試圖去思考這個問題,並且因爲我缺乏使用angularjs的經驗,所以我很茫然,所以我在問。

+0

你看的文檔,$動畫一個簡單的例子? https://docs.angularjs.org/api/ngAnimate/service/$animate –

+0

@AndrewChurch我知道,但還沒有探索過,$ animate。它和$ q在我對這個主題的搜索中都是可能的。我現在編輯了我最初的問題,明確提到$ animate。如果$ animate是一種類似於我正在考慮的效果的方式,那麼很棒,我會挖掘它。 – mjandrews

+0

@mjandrews $ q是在涉及異步操作時應用順序效果的方式,承諾非常酷,但我不認爲他們會在這裏幫助你。 –

回答

1

的AngularJS的方式是完全不可知你如何進行動畫和DOM操作只要你讓他們在指令。一旦在組件上執行了動畫,就可以通過指令和其他指令反覆使用該組件,並且在將來的使用中將實現細節從您中抽象出來。也就是說,在你的指令中 - 儘可能使用Angular功能來幫助你。

也就是說,使用Angular IMO做到這一點的最佳做法是使用CSS動畫並使用ngAnimate掛鉤來檢測轉換。

基本上,ngAnimate服務會在您的元素輸入時爲其添加類。請參閱the documentation here

相關問題