0

Also habe ich eine Liste von Elementen, mit ng-repeat. Alle Elemente haben eine ID, die accessbile wie {{item.id}} ist, wenn ich das bestimmte Element umschalte, das ich diese Item-ID zu einem Array schieben möchte. Ich habe viele Dinge ausprobiert, aber immer undefined bekommen.Ng-toggle, zu Array hinzufügen,

Das folgende ist der aktuelle Code, den ich versucht habe. Vielen Dank.

Vorlage:

<ion-list> 

    <ion-toggle toggle-class="toggleClass" 
    ng-repeat="item in items" 
    ng-model="item.checked" 
    ng-change="updateTracker({{item.id}});"> <!--item.id didnt work either --> 

    <span>{{item.name}}</span> <!--{{item.id}} this works --> 

    </ion-toggle> 

</ion-list> 

Controller:

$scope.trackerList = []; 
    console.log($scope.trackerList); 
    $scope.addTrack = function() { 
     $scope.trackerList.push(item.id); //undefined 
    }; 
    $scope.updateTracker = function(item) { 
     console.log($scope.item.id) 

    } 

EDIT:

$scope.updateTracker = function(item) { 
    console.log(item.id + "was added"); 
    $scope.trackerList.push(item.id); // only adds. would like to remove if toggle off 
    console.log($scope.trackerList) 
} 

DANKE developer033

+0

Verwenden Sie nicht '{{..}}' Notation im ng-Event – jeremy

+0

@jeremy, einige 'ng-Events' brauchen die' {{}} '.. – developer033

+0

@ developer033 wann? welche? ng-events analysieren die Argumente zur Laufzeit: https://github.com/angular/angular.js/blob/master/src/ng/directive/ngEventDirs.js#L60 – jeremy

Antwort

1

ngChange Direktive erwartet ein expression, so sollten Sie es wie folgt schreiben:

ng-change="updateTracker(item.id)" 

Edit:

Da Sie eine item in Ihrem controller erwar, ändern Sie es zu:

ng-change="updateTracker(item)" 

$scope.updateTracker = function(item) { 
    console.log(item.id) 
} 
+0

ich habe das schon mal versucht. Ich bekomme immer Fehler 'ionic.bundle.js: 26794 TypeError: Kann die Eigenschaft 'id' von 'undefined' nicht lesen –

+0

Überprüfen Sie es oben .. – developer033

+0

hat es nur geändert. immer noch gleichen Fehler –