2014-02-10 67 views
0

我有兩個指令,一個顯示對象列表,另一個將對象添加到該列表。 ,我的問題是,該列表被綁定到另一個元素列出這樣:指令之間的相互作用

主要代碼:

<!--main code --> 
<div> 
    <ul> 
     <li> 
      <element-a></element-a> 
     </li> 
     <li> 
      <element-a></element-a> 
     </li> 
     <li> 
      <element-a></element-a> 
     </li> 
     <li> 
      <element-a></element-a> 
     </li> 
    </ul> 
</div> 

元素模板

<!-- element-a template --> 
<ul> 
    <li> 
     <my-element-list></my-element-list> 
    </li> 
    <li> 
     <my-element-list></my-element-list> 
    </li> 
    <li> 
     <my-element-list></my-element-list> 
    </li> 
    <li> 
     <my-element-list></my-element-list> 
    </li> 
</ul> 

我的列表模板:

<!-- my-element-list template --> 
<button type="button" data-ng-click="addElement()">Add</button> 
<ul> 
    <li> 
     my element data 
    </li> 
    <li> 
     my element data 
    </li> 
    <li> 
     my element data 
    </li> 
</ul> 

我是新來角,但我不想有添加目錄在每個列表上都有效,因爲那樣會有很多不需要的代碼添加到html中。 此外,add是一個指令,它有一個模板等,它可以顯示一個模態對話框,它將請求元素數據。

這樣做是否正確? 單擊添加按鈕時,如何顯示添加模式對話框?我試過$broadcast$emit,但是add指令不是元素列表的父/子。

回答

1

你可能想試試這個方法。您的列表應該從控制器中的一系列項目生成,然後使用內置的Angular指令ng-repeat將其呈現到模板中。然後,將新項目添加到列表中應該如同確保控制器中的addElement()函數將項目添加到陣列一樣簡單。如果列表中的每個元素還需要它自己的模板,請在ng-repeat循環內使用ng-include指令進行研究。

ng-repeat docs

ng-include docs

+0

這不是問題所在。這些項目是這樣呈現的。只是顯示數據結構以顯示爲什麼$ emit和$ broadcast不起作用。 –

相關問題