2015-09-23 2 views
4

Я пытаюсь отключить поиск по определенному столбцу. Я использую эту угловую серверную сторону.Угловой Datatable Set Searchable False

https://l-lin.github.io/angular-datatables

обычно на JQuery я могу просто:

columns:[{data:"foo", name:"foo", searchable:false}] 

Я пытался использовать:

$scope.dtOptions = DTOptionsBuilder.newOptions() 
      .withOption('ajax', { 
       url: apiRoot + 'merchant-list' 
      }) 
      .withDataProp('data') 
      .withOption('serverSide', true) 
      .withOption('order', [0, 'asc']) 

    $scope.dtColumns = [ 
      DTColumnBuilder.newColumn('name', 'Name'), 
      DTColumnBuilder.newColumn('type', 'Type'), 
      DTColumnBuilder.newColumn('username', 'Username'), 
] 

$scope.dtColumnDefs = [ 
      DTColumnDefBuilder.newColumnDef(0), 
      DTColumnDefBuilder.newColumnDef(1).withOption('searchable', false), 
      DTColumnDefBuilder.newColumnDef(2).withOption('searchable', false) 
     ] 

, кажется, работает, но позиция columnDef не является правильным. , когда я ставил newColumnDef (1) для поиска false, столбец, который не должен быть поиском, должен быть вторым, но, по-видимому, он отключает первый столбец.

Есть ли способ отключить поиск определенной колонки и заказать ее?

Благодаря

Edit: Я пытался «упорядочиваема», ложные и notvisible работает на columnDef 0. Похоже, только для поиска отказобезо-.

ответ

5

Оба DTColumnBuilder и DTColumnDefBuilder элементы должны быть объявлены внутри массива:

$scope.dtColumns = [ 
    DTColumnBuilder.newColumn('name', 'Name').withOption('searchable', false) 
    ... 
] 

А потом он работает ->http://plnkr.co/edit/OOikiBKdLE8R1UEXLyMH?p=preview

или

$scope.dtColumnDefs = [ 
    DTColumnDefBuilder.newColumnDef('name', 'Name').withOption('searchable', false) 
]; 
+1

Привет, спасибо, что ответили. notSortable предназначен только для отключения сортировки. Я хочу отключить поиск определенного столбца, как мое объяснение выше. – ssuhat

+0

@sstarlight, обновили ответ. Я действительно не знаю, почему я думал о сортировке и не подлежит поиску. – davidkonrad

+0

Привет. Спасибо за ответ. похоже, что я делаю это с помощью columndef, но с отдельным dtcolumn. иногда он не работает, он все еще пытается найти данные. : | похоже, я собираюсь заменить его и вместо этого использовать jquery для datatable. выглядит намного легче, чем угловатый. Спасибо bro – ssuhat

1
$scope.dtOptions = {searching:false} 

Wi ll отлично работает с последними угловыми версиями.

+0

, он отлично работает но он может заменить другое свойство. поэтому лучший способ - назначить некоторые «dtOptions», просто использовать $ scope.dtOptions.searching = false –

+0

Да! Конечно . Но если вы хотите установить более одного свойства. Лучше всего использовать объектную нотацию. – Suchendra

Смежные вопросы