2016-05-29 6 views
0

Der Inhalt der Tabelle wird von AJAX geladen und ich möchte den Inhalt wie folgt anzeigen. Wie kann ich mich wenden diese beiden ng-show in RichtlinieWie mache ich anglejs table Direktiven

<table> 
    <tr> 
     <th>aaa</th> 
     <th>bbb</th> 
     <th>ccc</th> 
    </tr> 
    <tr ng-show="isLoading">Loading...</tr> 
    <tr ng-show="!isLoading" ng-repeat="log in logs"> 
     <td>{{log.aaa}}</td> 
     <td>{{log.bbb}}</td> 
     <td>{{log.ccc}}</td> 
    </tr> 
</table> 
+2

Was genau möchten Sie Anweisung tun? Scheint so, als würde man etwas komplizieren, das bereits wirklich einfach ist, einfach zu lesen und Kernfunktionalität ist. Beachten Sie auch, dass '

' bei erlaubten Typen von Kindelementen sehr begrenzt ist, so dass Sie kein benutzerdefiniertes Tag als Kind von '
' – charlietfl

+0

verwenden können. Eigentlich möchte ich eine Direktive wie '

... machen tr loading ng-repeat = "xxx">
' –

+0

Nun, das ist ziemlich verschieden von der Frage, nur zu fragen, wie man 'ng-show's in Direktive umwandelt. Würde wahrscheinlich helfen, dass Sie [fragen] lesen. so detailliert und spezifisch wie möglich zu sein, vermeidet Verwirrung und Vermutungen unsererseits. Eine gute Frage zu stellen, erfordert ein wenig Anstrengung, wird aber auch viel schneller beantwortet – charlietfl

Antwort

1

tableDirective:

angular.module('app', []) 
    .directive('tableDirective', function() { 
    return { 
     restrict: 'E', 
     scope: { 
     isLoading: '=', 
     logs: '=' 
     }, 
     templateUrl: 'table.html' 
    } 
}); 

table.html:

<table> 
    <tr> 
     <th>aaa</th> 
     <th>bbb</th> 
     <th>ccc</th> 
    </tr> 
    <tr ng-show="isLoading">Loading...</tr> 
    <tr ng-show="!isLoading" ng-repeat="log in logs"> 
     <td>{{log.aaa}}</td> 
     <td>{{log.bbb}}</td> 
     <td>{{log.ccc}}</td> 
    </tr> 
</table> 

view:

<table-directive is-loading="isLoading" logs="logs"></table-directive> 

isLoading und logs von Ihrem Controller.