2016-08-23 7 views
2

Любой, кто использует угловые данные в AngularJS?AngularJs + угловой datatable

Отредактировано: Я хочу отфильтровать данные в таблице. В конкретных. например, если выбор относится к категории. Он будет фильтровать только то, что находится в столбце категории. Но в моем фильтре на данный момент. Он фильтрует все.

Вот мой код для фильтрации. Я просто копирую, как «окно поиска» отфильтровывало данные. потому что я не знаю правильный код для фильтрации с помощью select. и он настроен.

function dtInstanceCallback (dtInstance) { 
    var datatableObj = dtInstance.DataTable; 
    vm.tableInstance = datatableObj; 
} 

function searchTable() { 
    var query = vm.queryProductSearch; 
    vm.tableInstance.search(query).draw(); 
} 

function selectCategoryInTable() { 
    var sel = vm.selCategory; 
    vm.tableInstance.search(sel).draw(); 
} 

function selectStatusInTable() { 
    var sel = vm.selStatus; 
    vm.tableInstance.search(sel).draw(); 
} 

searchTable() для моего окна поиска. и selectCategoryInTable/selectStatusInTable для столбца столбца категории и столбца состояния в моей таблице. Но он все фильтрует.

И я хочу знать, как фильтровать конкретные данные. Например, если я фильтрую «АКТИВНО». мои данные в datatable покажут «НЕАКТИВНО», потому что в «НЕАКТИВНО» есть «АКТИВНО». поэтому я хочу отфильтровать конкретное слово.

ответ

0

Не похоже на прав. Правильное использование DataTables 1.10.x API из dtInstance будет

vm.tableInstance.DataTable.search(query).draw() 

, если вы хотите искать в определенном столбце, вы можете использовать

vm.tableInstance.DataTable.column(1).search(query).draw() 

, если вы хотите найти целые слова, а не только часть слов (например, active vs inactive), а затем используйте поиск регулярных выражений. Заверните query в ^..$ и установить первый из параметров, чтобы верно, см документацию для search():

vm.tableInstance.DataTable.column(1).search('^'+query+'$', true).draw() 

здесь пример поиска для обув в колонке # 1 ->http://plnkr.co/edit/s1pP42YFE4WeuStdaK8d?p=preview

+0

Спасибо за ответ на мой вопрос. вы действительно помогли мне там. Мне жаль, что я не могу добавить к тебе репутацию. Я все еще здесь новичок. – jjjjjj

+0

, но у меня есть эта проблема. Я попытался добавить это в свой код. функция selectStatusInTable() { var sel = vm.selectStatus; if (sel == 'ACTIVE' || sel == 'НЕАКТИВНО') { vm.tableInstance.column (5) .search ('^' + sel + '$', true) .draw(); } else if (sel == '') { vm.tableInstance.search (sel) .draw(); } } потому что всякий раз, когда я нажимаю «ВСЕ» в своем выборе. он ничего не показывает. но когда я пытаюсь использовать, если иначе. Я не буду показывать все данные с неактивными и активными, когда я нажимаю «ВСЕ» – jjjjjj

+0

ohh. Я уже исправил это. спасибо, кстати. – jjjjjj

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