AngularJs + угловые данные

Кто-нибудь здесь использует angular-datatables в AngularJS?

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

Вот мой код для фильтрации select. Я просто копирую, как «окно поиска» фильтрует данные. потому что я не знаю правильного кода для фильтрации с помощью 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 для столбца моей категории и столбца статуса в моей таблице. Но фильтрует все.

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


person jjjjjj    schedule 23.08.2016    source источник


Ответы (1)


Это не кажется правильным. Правильное использование API dataTables 1.10.x из dtInstance будет

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

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

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

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

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

вот пример поиска foo в столбце №1 -> http://plnkr.co/edit/s1pP42YFE4WeuStdaK8d?p=preview

person davidkonrad    schedule 24.08.2016
comment
Спасибо, что ответили на мой вопрос. ты действительно помог мне там. Извините, я не могу добавить вам репутацию. Я еще новичок здесь. - person jjjjjj; 24.08.2016
comment
но у меня есть эта проблема. Я попытался добавить это в свой код. function selectStatusInTable () { var sel = vm.selectStatus; if(sel == 'ACTIVE' || sel == 'INACTIVE'){ vm.tableInstance.column(5).search('^'+sel+'$', true).draw(); } else if (sel == '') { vm.tableInstance.search(sel).draw(); } } потому что всякий раз, когда я нажимаю ВСЕ в своем выборе. ничего не показывает. но когда я пытаюсь использовать if else. Я не буду показывать все данные с неактивными и активными, когда я нажимаю ВСЕ - person jjjjjj; 24.08.2016
comment
@jjjjjj, извините за задержку, я сам на работе :) здорово, что вы разобрались! - person davidkonrad; 24.08.2016
comment
@davidkonrad, как это сделать в angular 5 или 6. Скажите, пожалуйста, я застрял в этой проблеме, вот ссылка на мой вопрос - person Jayant Singh; 10.09.2018