2015-11-19 74 views
0

我想創建一個指令,該指令需要一個字符串數組,並將它們組織到一個表中,每行有4個字符串。如何在我的自定義指令中使用現有的ng-repeat指令?

因此,例如,陣列['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']將被呈現爲:

a b c d 
e f g h 

對於這一點,我可以很容易地寫出一個link函數手動操縱DOM(jQuery的樣式)和renderes此表。

但是這種感覺不對,因爲我們已經有了可以做這項工作一半的指令,如ng-repeat。我想使用現有的可以提供幫助的東西,只編寫新的功能。

我該如何做到這一點?

+0

你的問題使自己無法回答。沒有任何「正確的方法」來完成每一項任務,排除其他任何方法;有很好的方法來完成任務和不好的方法來完成任務。在你的特定情況下,可以顯示一個完成你的任務的另一種好方法,但這並不能使它成爲唯一正確的方式,或者你應該完成所有類似任務的方式。因此,你應該問的是你說你不希望任何人回答的一件事。 – Claies

+0

這有兩種常見方式,主要取決於您是否使用響應式框架。 http://stackoverflow.com/questions/27211799/angular-ng-repeat-add-bootstrap-row-every-3-or-4-cols有幾個例子;一種方法是使用響應重置,而不是嘗試控制DOM。另一種方法涉及將數據分塊爲數組數組,並使用兩個'ng-repeat'來迭代外部數組作爲行,內部數組迭代爲列。 – Claies

+0

你是正確的,但你的想法是操縱DOM並不是真正的角度。 – Claies

回答

0

是的,你只需要指定模板(通過template或templateUrl),並在裏面使用你的變量。

請記住將屬性映射到作用域變量,然後您可以在不使用其他代碼的情況下使用它。

相關問題