2016-08-23 62 views
2

这里的任何人在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用于我的表中的我的类别列和状态列。但它过滤了一切。

我想知道如何过滤特定的数据。就像我过滤“ACTIVE”一样。我的datatable中的数据也会显示“INACTIVE”,因为在“INACTIVE”中有“ACTIVE”。所以我想过滤特定的单词。

回答

0

这看起来不对。数据表的正确用法从dtInstance 1.10.x API将

如果您想在特定列中搜索
vm.tableInstance.DataTable.search(query).draw() 

,您可以使用

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

,如果你要搜索整个单词,而不仅仅是单词的一部分(如活动vs非活动),然后使用正则表达式搜索。裹query^..$和第一个参数设置为true,看文档的search()

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

这里是一个例子,列#寻找FOO 1 - >http://plnkr.co/edit/s1pP42YFE4WeuStdaK8d?p=preview

+0

谢谢你回答我的问题。你真的帮助我。很抱歉,我无法为您添加声望。我在这里还是新手。 – jjjjjj

+0

但我有这个问题。 我试图在我的代码中添加这个。 (){ var sel = vm.selectStatus;如果(sel =='ACTIVE'|| sel =='INACTIVE'){ vm.tableInstance.column(5).search('^'+ sel +'$',true).draw(); (sel ==''){ vm.tableInstance.search(sel).draw(); else if(sel ==''){ } } } 因为每当我点击我所选择的“ALL”。它什么都没显示。但是当我尝试使用,如果其他。当我点击“ALL” – jjjjjj

+0

ohh时,我不会显示所有数据处于非活动状态并处于活动状态。我已经修好了。谢谢btw。 – jjjjjj