2016-06-10 38 views
1

我是Angular的新手,一直在試圖製作一個動態表。Angular.js:表中的列的動態長度

用戶輸入他想要的列數,然後他可以根據需要添加多少行到每列列。

我在每列的末尾提供了一個「添加」按鈕,用於向該特定列添加新行。

我的代碼看起來有點像這樣:

<table> 
 

 
    <tr> 
 
    <th ng-repeat="x in setno"> SET {{x.number}}</th> 
 
    </tr> 
 
    
 
    <tr ng-repeat="z in selected"> 
 
    <td> </td> 
 
    </tr> 
 
    
 
    <tr> 
 
    <td ng-repeat="x in setno"> 
 
     <button ng-click="selected.push({})"> add </button> 
 
    </td> 
 
    </tr> 
 
    
 
</table>

其中,setno是包含數字的列表:

$scope.setno[{id:"a", number:"1"},{id:"b", number:"2"},...]; 

選擇具有相似的結構。

問題是,當我點擊任何列的「」添加「按鈕時,新行將被添加到所有列中。

雖然我想要添加一個新行,但只添加了「添加」按鈕的那一行。

我怎麼知道誰的「」按鈕已被點擊?

回答

0

我怎麼知道誰的「添加」按鈕已被點擊?

您需要訪問目標中繼當前$index。現在,我不知道它是你努力的目標,但你可以在ng-repeater$index另一個變量存儲使用以下語法內中繼接入:

<!-- outer loop --> 
<div ng-repeat="(idxA, item) in items)"> 

    <!-- inner loop --> 
    <div ng-repeat"(idxB, obj) in item.objs"> 

     <ul> 
      <!-- another inner loop --> 
      <li ng-repeat="li in obj.pts"> 

在上面的代碼idxA會與外環的$index相同,idxB是內環的$index等等。然後,您只需將索引(例如idxAidxB)傳遞給您的方法。

資源: