2016-04-17 5 views
0

In einer ng-Wiederholung möchte ich ein hide-xs Attribut auf einem Element basierend auf dem aktuellen Bereich hinzufügen.
Wie kann ich das tun?Bedingt fügen Sie das Attribut hide-xs hinzu

Ich möchte im Grunde so etwas wie zu tun (dies offensichtlich nicht funktionieren):

<li ng-repeat="item in items" hide-xs="{{ item.showAlways ? 'false' : 'true' }}"> 
    <a href="" ng-click="item.action()">{{item.title}}</a> 
</li> 

bearbeiten

landete ich dies zu tun (wie von DieuNQ vorgeschlagen), aber wenn jemand weiß, wie man es unter Verwendung der Richtlinie und nicht Klasse tut, würde ich es nehmen

<li ng-repeat="item in items" ng-class="{'hide-xs': !item.showAlways }}"> 
    <a href="" ng-click="item.action()">{{item.title}}</a> 
</li> 

Antwort

1

hide-xs funktioniert nicht so (es hängt nicht von wahr oder falsch ab). Fügen Sie einfach Klasse zu Ihrem tag hinzu. Versuchen Sie folgendes:

in Ihrem HTML:

<li ng-repeat="item in items" ng-model="item.showAlways" ng-class="someClass"> 
    ... 
</li> 

In Ihrem Controller:

$scope.item.showAlways ? $scope.someClass == '' : $scope.someClass == 'hide-xs'; 
+3

Ich habe eine einfachere ng-class = "{ 'hide-xs': item.showAlways}" und es funktioniert gut. Verwenden von Direktive ist besser als die Verwendung von Klasse IMHO, aber es funktioniert :) – Nico

Verwandte Themen