2016-04-21 8 views
1

Ich versuche, das Datenattribut von diesem zu erhalten:Erstes Datenattribut in Winkel

<button ng-click="EditPlayer(name, position, number, age)" id="btnEdit" class="btn btn-successes" data-playerid="{{player.id}}">Save</button>

In meinem Winkel Controller ich habe:

$scope.EditPlayer = function(name, position, number, age) { 

    var player_id = $(this).data('playerid'); 

    console.log(player_id); 

    var player = new Player(name, position, number, age); 

    $http({ 
     method : "PUT", 
     url : 'api.php/players/'+player_id, 
     data: JSON.stringify(player), 
    }).then(function mySucces(player) { 
     $scope.players.push(player); 
    }, function myError(response) { 
     $scope.showError = response.statusText; 
    }); 
}; 

ich das Attribut erhalten müssen, damit ich kann jede player_id auf ein Update ausrichten (PUT-Anfrage). Das Problem ist, dass $(this).data(player_id) undefined zurückgibt.

+0

Von der Art und Weise Sie Daten-playerid Einstellung = "{{player.id}}" und die Methode auf derselben Schaltfläche bedeutet dies, dass Sie Zugriff auf das Objekt "Player" vom Controller haben sollten. Du kannst player_id = $ scope.player.id tun. – Murwa

Antwort

4

Geben Sie einfach es als ein weiteres Argument für die Funktion

<button ng-click="EditPlayer(name, position, number, age, player.id)" id="btnEdit" class="btn btn-successes" data-playerid="{{player.id}}">Save</button> 

dann

$scope.EditPlayer = function(name, position, number, age,player_id) { 
    console.log(player_id) 
+0

Das ist perfekt. Vielen Dank! – GarethFrazer