Ich versuche, die Methode removePlayer(playerId)
aufzurufen, wenn eine Schaltfläche geklickt wird. Aber die Methode wird nicht aufgerufen, oder zumindest die Anweisungen darin werden nicht ausgelöst, weil ich eine console.log()
-Anweisung an die Spitze gesetzt habe.AngularJS - Controller-Methode wird nicht auf ngClick aufgerufen - kein Fehler
Die Konsole ist leer, also bin ich wirklich ahnungslos. Hier ist mein Code:
Controller:
function appController($scope) {
$scope.players = [];
var playercount = 0;
$scope.addPlayer = function(playername) {
$scope.players.push({name: playername, score: 0, id: playercount});
playercount++;
}
function getIndexOfPlayerWithId(playerId) {
for (var i = $scope.players.length - 1; i > -1; i--) {
if ($scope.players[i].id == playerId)
return i;
}
}
$scope.removePlayer = function(playerId) {
console.log("remove");
var index = getIndexOfPlayerWithId(playerId);
$scope.players.slice(index, 1);
}
}
appController.$inject = ['$scope'];
HTML:
...
<table id="players">
<tr ng-repeat="player in players">
<td>{{player.name}}</td>
<td>{{player.score}}</td>
<td><button ng-click="removePlayer({{player.id}})">Remove</button></td>
</tr>
</table>
...
Warum ist das Player-Objekt im Controller, nicht im Modell? – LeeGee
Ich habe gerade AngularJS ausprobiert, nur um herauszufinden, was es war. Es war kein "echtes" Projekt. @LeeGee – 11684