2016-03-24 10 views
0

ich ein Objekt mit einer Datenstruktur haben, wie unten,AngularJS ng-Repeat-Objekt - doppelte Werte

data = {}; 

data[user1] = { 
name: "apple", 
Company: "001" 
}; 
data[user2] = { 
name: "apple", 
Company: "002" 
}; 
data[user3] = { 
name: "orange", 
Company: "003" 
}; 

Das Objekt würde aktualisiert werden, wenn ein neuer Benutzer hinzugefügt wird

Ich Iterieren dieses Objekt Verwendung ng-repeat der Daten in tabellarischer Form zu präsentieren,

<table> 
<thead> 
    <tr> 
    <td>Name</td> 
    <td>Company</td> 
    </tr> 
</thead> 
<tbody> 
    <tr ng-repeat="(key, value) in data"> 
    <td>{{$parent.data[key].name}}</td> 
    <td>{{$parent.data[key].Company}}</td> 
    </tr> 
</tbody> 
</table> 

Was ich versuche, ist in der Tabelle zu sehen, da „user1“ und „user2“ gleiche Namen hat ich das einmal werden mag, gedruckt mit ar eine spanne von 2. ist das möglich?

die Tabelle wie folgt Mit diesen Daten versuchen

enter image description here

was aussehen würde ich ist,

enter image description here

+1

http://stackoverflow.com/questions/14800862/how-can-i-group-data-with-anangular-filter – Dave

Antwort

0

Ich sehe nicht, Eine einfache Möglichkeit, rowspan zu verwenden. Aber Sie können die groupBy Filter verwenden, indem angular.filter dies zu tun:

<table> 
    <tr ng-repeat='(key, value) in data | groupBy: "name"'> 
     <td>{{key}}</td> 
     <td> 
     <table> 
      <tr ng-repeat='item in value'> 
      <td>{{item.Company}}</td> 
      </tr> 
     </table> 
     </td> 
    </tr> 
    </table> 

hier ein plunk ist zu demonstrieren.

+0

Ich habe die obige Lösung implementiert und es funktioniert ... Vielen Dank. Ich habe nur eine andere Frage, gibt es eine Möglichkeit, auf den ng-repeat $ Index des Kindes in elterlichen .. Ich weiß für die andere Weise gibt es $ parent. $ Index, ähnlich, wenn wir auf Kinder-Index in Eltern zugreifen müssen, ist das etwas Machbares. – Sai

+0

Ich habe gerade versucht, einen NG-Klick hinzuzufügen und den Firmennamen als Parameter zu übergeben, wie unten '

{{ item.Company}}
' – Sai

+0

nie Geist es bekam :), danke Dave. – Sai

0

Sie sehen zu bekommen, weil Sie wahrscheinlich Benutzer setzen die " Name "in Benutzer1 Variable. bitte korrigieren Sie mich, wenn ich falsch bin

Verwendung so etwas wie dieses

data = {}; 

data[user1+""+data.length()] = { 
name: "apple", 
Company: "001" 
}; 

oder verwenden Sie eine inkrementale Variable

var i = 0; 
data = {}; 

data[user1+""+i] = { 
name: "apple", 
Company: "001" 
}; 
i++; 

oder benutzer1 vollständig entfernen

var i = 0; 
data = {}; 

data[i] = { 
name: "apple", 
Company: "001" 
}; 
i++ 
data[i] = { 
name: "apple", 
Company: "002" 
};