2017-01-13 2 views
1

Dies ist der HTML-Code für die Schaltflächen, sind taskfilter die Filter, wie die Tasten funktionieren auf Klick und der Klassenname ist ‚sel‘Wie füge ich eine aktive Klasse mit ng-click Buttons hinzu?

<a class="clear-completed" ng-click="taskfilter = 1" ng-class="{'sel':enabled}"> 
    <span>show completed</span>. 
</a> 
<a class="clear-completed" ng-click="taskfilter = 2" ng-class="{'sel':enabled}"> 
    <span>show to do</span>. 
</a> 
<a class="clear-completed" ng-click="taskfilter = 0" ng-class="{'sel':enabled}"> 
    <span>show all</span>. 
</a> 

Dies ist der Code, den ich verwenden, um den Klassenbereich mit der hinzufügen Taste auf Klick den Index in hTML entfernt, weil es

$scope.taskfilters = 0; 
$scope.taskfilter = function(index) { 
    $scope.taskfilters = index; 
}; 

Antwort

1
<a class="clear-completed" ng-click="taskfilters = 1" ng-class="{'sel':taskfilters == 1}"> 
    <span>show completed</span>. 
</a> 
<a class="clear-completed" ng-click="taskfilters = 2" ng-class="{'sel':taskfilters} == 2"> 
    <span>show to do</span>. 
</a> 
<a class="clear-completed" ng-init="taskfilters = 0" ng-click="taskfilters = 0" ng-class="{'sel':taskfilters == 0}"> 
    <span>show all</span>. 
</a> 
+0

rot zu haben, aber wie habe ich 'taskfilter = 0 Taste 'mit aktiver Klasse auf Anfangswert. es zeigt nur nein, wenn ich auf die Schaltfläche klicke, aber ich möchte die erste Schaltfläche beim Laden mit der Klasse haben und wenn ich auf die anderen klicke, um sie anstelle der ersten Schaltfläche rot zu haben –

+0

Eine andere Möglichkeit ist, $ scope zu schreiben. taskfilters = 0 in der ersten Zeile des Controllers, um den Wert zu initialisieren. Ansonsten ist ng-init in Ordnung. –

1

Sie ngClass Richtlinie

verwenden arbeiten wont Wenn der Ausdruck bewerten s zu einem Objekt, dann wird für jedes Schlüssel-Wert-Paar des Objekts mit einem truthy Wert der entsprechende key als class name verwendet.

<a ng-class="{'active' : taskfilter == 0}" ng-click="taskfilter = 0"> 
+0

aber wie muß ich 'taskfilter = 0 Taste' mit aktiver Klasse auf inital Wert. es zeigt nur nein, wenn ich auf die Schaltfläche klicken, aber ich möchte die erste Schaltfläche beim Laden mit der Klasse haben und wenn ich auf die anderen klicken, um sie anstelle der ersten Schaltfläche –

0
var app = angular.module("ap",[]); 

app.controller("con",function($scope) { 

$scope.class = "red"; 
$scope.changeClass = function(){ 
if ($scope.class === "red") 
    $scope.class = "blue"; 
else 
    $scope.class = "red"; 
}; 

});

.red{ 
color:red; 
} 

    .blue{ 
    color:blue; 
} 
+0

{{class}}

1
<a class="clear-completed" ng-click="taskfilters = 1" ng-class="{'sel':taskfilters == 1}"> 
    <span>show completed</span>. 
</a> 
<a class="clear-completed" ng-click="taskfilters = 2" ng-class="{'sel':taskfilters} == 2"> 
    <span>show to do</span>. 
</a> 
<a class="clear-completed" ng-click="taskfilters = 0" ng-class="{'text-primary':!taskfilters, 'sel':taskfilters == 0}"> 
    <span>show all</span>. 
</a> 
+0

ich es nur noch auf reload-Orange zu sein, so dass Sie sehen, dass Sie am Anfang sind, und wenn uou wollen, den anderen überprüfen die Klasse wechselt zu den anderen. Wenn Sie das wissen, werde ich Ihre Antwort richtig machen –

Verwandte Themen