2017-04-27 10 views
0

ich habe eine einzelne toggle-taste, die farbe ändert, wenn aktiv geklickt wird. aber jetzt bin ich fest, wie ich den Wert der Schaltfläche (aktiv oder inaktiv) in meinem Controller bekommen werde. wie soll ich das angehen?überprüfen, ob die taste aktiv ist oder nicht im controller

hier ist der Fehlercode:

TypeError: Cannot read property 'clicked' of undefined 

hier ist der HTML-Code:

<button class="button button-clear icon ion-star button-energized" ng-model="singleTog" ng-click="toggleButton(item.name)" ng-class="singleTog.clicked?'button-energized':'button-dark'" ></button> 

und hier ist der controller.js Code:

$scope.toggleButton = function(candidateName) 
{ 
    $scope.singleTog.clicked=!$scope.singleTog.clicked 
    if($scope.singleTog.clicked==true) 
    { 
    if(favoriteList.indexOf(candidateName) == -1) //does not exist in array 
    { 
     $scope.numbers.push(candidateName); 
    } 
    } 
    else 
    { 
    if(favoriteList.indexOf(candidateName) != -1) //exists in array 
    { 
     var index = $scope.favoriteList.indexOf(candidateName); 
     $scope.favoriteList.splice(index, 1); 
    } 
    } 

    alert('favorites = ' + favoriteList); 
} 
+1

Versuch zu definieren Standardzustand '$ scope .singleTog = {} ', vor' $ scope.toggleButton' – Leguest

+0

Wo initialisierst du $ scope.singleTog? –

Antwort

0

ein emty Objekt als $scope.singleTog = {} definieren

Versuchen Sie, diese

$scope.singleTog = {} 
$scope.toggleButton = function(candidateName) 
{ 
    $scope.singleTog.clicked=!$scope.singleTog.clicked 
    if($scope.singleTog.clicked==true) 
    { 
    if(favoriteList.indexOf(candidateName) == -1) //does not exist in array 
    { 
     $scope.numbers.push(candidateName); 
    } 
    } 
    else 
    { 
    if(favoriteList.indexOf(candidateName) != -1) //exists in array 
    { 
     var index = $scope.favoriteList.indexOf(candidateName); 
     $scope.favoriteList.splice(index, 1); 
    } 
    } 

    alert('favorites = ' + favoriteList); 
} 
0

Wenn Sie nur die Farbe der Schaltfläche ändern möchten, wenn sie aktiv oder inaktiv ist, können Sie ng-Klasse für die Verwendung:

ng-class="$variableToEvaluate ? 'class-if-true' : 'class-if-false'" 
Verwandte Themen