2013-10-07 4 views
6

Gibt es sowieso ich kann ng-switch arbeiten in einer Tabelle? Das Tabellenbeispiel funktioniert nicht, aber die ul-Beispiele funktionieren einfach. Das Problem ist, dass ich das Tabellenbeispiel wirklich brauche. Ich benutze Winkel 1.07.Angularjs. ng-switch arbeitet nicht in einer Tabelle

<table> 
    <tbody ng-repeat="item in items"> 

    <tr><td>{{ item.heading }}</td></tr> 

    <tr ng-repeat="row in item.fields" ng-switch on="row.nb"> 

    <div ng-switch-when="01"> 
    <td>{{ row.nb }}</td> 
    </div> 

    </tr> 

    </tbody> 

</table> 

<ul ng-repeat="item in items"> 
    <li ng-repeat="row in item.fields" ng-switch on="row.nb"> 

    <div ng-switch-when="01"> 
    {{ row.nb }} 
    </div> 

    </li> 
</ul> 

Antwort

10

Sie müssen die ng-switch-when zum td bewegen sonst wird es ignorieren sie als ungültig, weil ein div innerhalb eines tr nicht gültig Markup ist. https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tr

die div entfernen und sie ändern:

<td ng-switch-when="01">{{ row.nb }}</td> 

Demo: http://plnkr.co/edit/yHkBGekjgGDts8pNtekJ?p=preview

+0

Vielen Dank für Ihre Antwort. Mein Beispiel wurde vereinfacht. Im echten Code habe ich mehrere TD: s. Vielleicht könnte ich die TD: s durch eine neue Tabelle ersetzen - aber ich nehme an, die Zellen in den Tabellen würden dann nicht richtig auf andere Tabellen ausgerichtet sein. Wie auch immer, ich hatte so viel Glück, dass sich nur ein TD je nach Parameter (row.nb) ändert, so dass deine Lösung gut für mich funktioniert. Danke vielmals. – user2856066

+0

Tabellen können umständlich werden. Sie könnten Gitter (Bootstrap) verwenden, aber alles hängt von Ihren Anforderungen ab. – lucuma

+0

Das ist auch eine gute Idee. Ich benutze bereits twitter bootstrap, also ist das sehr möglich. Seltsam, dass ich neuere darüber nachgedacht habe und mit dieser Lösung werde ich die verschiedenen tbodys loswerden, die in der ng-Wiederholung entstehen. Danke, ich werde beide Lösungen bewerten. – user2856066

Verwandte Themen