2017-01-07 3 views
1

Ich verwende Datatables, um Daten anzuzeigen. Wenn ich auf eine Zeile klicke, möchte ich an den Daten arbeiten und dann Datenbindungen ausführen, um diese Daten anzuzeigen. Hier ist der Code, den ich für die Datentabelle Veranstaltung haben:Angular Databinding bei der Datensatzauswahl

table.on('select', function (e, dt, type, indexes) { 
      $scope.siege = { 
       economique: 30, 
       affaire: 30, 
       premiere: 30 
      }; 

      if (type === 'row') { 
       var avion = table.rows(indexes).data()[0]; 

       $scope.getConfiguration(avion); 

       // do something with the ID of the selected items 
      } 
     }); 

Wie Sie zum Beispiel sehen können, ich möchte Daten auf $ scope.siege binden, aber es funktioniert nicht und es gibt nichts prompt in die Konsole.

Allerdings, wenn ich gesagt:

$scope.siege = { 
    economique: 30, 
    affaire: 30, 
    premiere: 30 
}; 

Irgendwo anders in der Steuerung funktioniert.

Vielen Dank für Ihre Hilfe.

+0

hallo. .haben Sie versucht mit $ scope. $ apply (function() {var avion = table.rows (indexes) .data() [0]; $ scope.getConfiguration (avion);}) –

+0

es funktioniert, danke Sie ! Kannst du mir erklären warum? – malignois

+0

Wenn es funktioniert, stelle ich als Antwort, so kann es andere Leute hekp .. und von Ihnen kann es bewerten :-) ..thnx !! –

Antwort

2

Versuchen Sie, einen $ Rahmen setzen $ gelten .. weil es Winkel lassen weiß, dass Sie Ihre $ scope aktualisieren müssen (wenn Sie außerhalb Winkel Ereignisse sind) .. so etwas wie:.

table.on('select', function (e, dt, type, indexes) { 
      $scope.siege = { 
       economique: 30, 
       affaire: 30, 
       premiere: 30 
      }; 

      if (type === 'row') { 
$cope.$apply(function(){ 
    var avion = table.rows(indexes).data()[0]; 

       $scope.getConfiguration(avion); 

       // do something with the ID of the selected items 
}) 

      } 
     });