Angularjs - ngTable - проблема с динамическим фильтром в контроллере

Я хочу создать фильтр для своего ngTable.

В контроллере в корне (не в функции) я делаю:

$scope.filters = {
   nomSociete: 'test'
}

тогда

$scope.tableParamsContacts.reload();
$scope.tableParamsContacts = new ngTableParams({
           page: 1,            // show first page
           count: 10,
           filter : $scope.filters,
           sorting: {
               nom:'asc',
               prenom:'asc'
           }
       }, {
           total: dataContact.length, // length of data
           getData: function($defer, params) {
               // use build-in angular filter
               var filteredData = params.filter() ?
                   $filter('filter')(dataContact, params.filter()) :
                   data;
               var orderedData = params.sorting() ?
                   $filter('orderBy')(filteredData, params.orderBy()) :
                   dataContact;

               params.total(orderedData.length); // set total for recalc pagination
               if (params.total() < (params.page() -1) * params.count()){
                   params.page(1);
               }
               $defer.resolve(orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count()));
           }
       });

Оно работает

Но если я поставлю

$scope.filters = {
   nomSociete: 'test'
} 

в функции в моем контроллере:

vm.onClientSelect = function(affaire){
   $scope.filters = {
      nomSociete: 'test'
   }
   $scope.tableParamsContacts.reload();
}

Это не работает, значение фильтра не отображается в таблице ng, и таблица ng становится пустой.

Я не понимаю, почему.

Знаете ли вы, что директивы являются одной из самых мощных и универсальных функций Angular?
Знаете ли вы, что директивы являются одной из самых мощных и универсальных функций Angular?
Директивы позволяют расширять HTML новыми элементами и атрибутами и даже создавать собственные структурные директивы для манипулирования DOM. С...
Разница между Angular и React
Разница между Angular и React
React и AngularJS - это два самых популярных фреймворка для веб-разработки. Оба фреймворка имеют свои уникальные особенности и преимущества, которые...
0
0
45
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Измените фильтр прямо из вашего ngTableParams следующим образом:

 $scope.filters = {
   nomSociete: 'test'
 } 
 $scope.tableParamsContacts.filter($scope.filters);
 $scope.tableParamsContacts.reload();

Другие вопросы по теме