2016-07-15 2 views
0

У меня возникла проблема с тем, как запускать событие, когда определенные данные выбираются с помощью углового выбора данных.Как создать функцию обратного вызова по угловому набору данных

Я хочу включить кнопку редактирования и удаления, когда есть выбранная строка.

Вот мой код:

app.controller('SampleController', function($http, DTOptionsBuilder, DTColumnBuilder, $q) { 
     var vm = this; 

     vm.dtOptions = DTOptionsBuilder.fromFnPromise(function() { 
      var defer = $q.defer(); 
      $http.get("{!! url('sample/api/v1/questions?questionType=1') !!}") 
      .then(function(response) { 
       defer.resolve(response.data.active_question_contents); 
      }); 

      return defer.promise; 
     }) 
     .withDOM('frtip') 
     .withPaginationType('full_numbers') 
     .withDisplayLength(5) 
     .withButtons([{ 
      text: 'Add', 
      key: '1', 
      action: function(e, dt, node, config) { 
      alert('Add'); 
      } 
     }, { 
      text: 'Edit', 
      key: '2', 
      action: function(e, dt, node, config) { 
      alert('Edit'); 
      }, 
      enabled: false 
     }, { 
      text: 'Delete', 
      key: '3', 
      action: function(e, dt, node, config) { 
      alert('Delete'); 
      }, 
      enabled: false 
     }]) 
     .withSelect({ 
      style: 'os', 
      selector: 'td:first-child' 
     }); 

Я попытался drawCallback, но срабатывает только один раз.

ответ

1

Я уже решил это! Я просто добавил this.DataTable() внутри функции drawCallback.

Вот код:

vm.dtOptions.drawCallback = function() { 
    var table = this.DataTable(); 

    table.on('select', function() { 
      alert('Selected!'); 
      // Enable/disable buttons here... 
    }); 
}; 
Смежные вопросы