2014-06-09 248 views
1

請原諒我的標題,我不知道如何描述它。AngularJS和DOM元素注入

我是AngularJS的新手,我想請教你如何創建一些東西。

我有一個列表,我正在用ngRepeat繪圖。當你點擊每個列表項目時,打開一個摺疊菜單。該菜單對列表中的所有元素都是相同的。目前,我的ngRepeat會將這個菜單繪製到每個列表項並僅在相應的列表項被點擊時才顯示它。所以如果我的清單有50個項目,我會畫菜單50次!這是我真正需要的49倍。

如果我要用jQuery來做這件事,我只需創建菜單並在dom上更改其位置即可。我怎樣才能做到這一點?

示例如何顯示列表的圖像,灰色項目是菜單及其操作。看起來是一樣的所有項目,並調用相同的功能,但使用不同的參數: http://i.stack.imgur.com/rvk5L.jpg

+0

請發表您正在使用的代碼。另外,我不確定jQuery實現與AngularJS重複的區別。它只是改變了DOM。 –

回答

0

使用ngIf而不是ngShow上的菜單項時,點擊,在這種情況下,HTML根本就無法顯示(當表達式爲假,當然)

+0

謝謝!這是我正在尋找:)以前不熟悉這一點。 – Shai

+0

@你好,歡迎:) – karaxuna

1

我猜這些類型的案例ng-if將是一個更好的選擇,因爲這將根據條件創建dom,而不是像ng-show那樣顯示/隱藏已創建的元素。

從文檔:

的ngIf指令刪除或重新創建基於一個{表達式} DOM樹 的一部分。如果分配給ngIf的表達式將 評估爲false值,則將該元素從DOM中移除,否則將該元素的一個 克隆重新插入到DOM中。

這裏是一個演示:http://plnkr.co/edit/Ro9LOB4f81LT32mGMyij?p=preview