Javascript 如何使用余烬突出显示当前选定的列?

Javascript 如何使用余烬突出显示当前选定的列?,javascript,jquery,sorting,ember.js,Javascript,Jquery,Sorting,Ember.js,Ember内置了对控制器中数组排序的支持,这使得在数据排序顺序更改时更新模板非常方便 但是,我的问题是如何方便地(1)突出显示数据排序依据的当前选定列,以及(2)排序顺序(升序或降序)。通过突出显示,我的意思是添加一个向上或向下箭头,或类似的东西 目前,我正在使用jQuery在视图层中处理这个问题,但我觉得,鉴于Ember处理此类琐碎问题的优雅性,肯定有一个更简单的解决方案。对于我建议使用的表。这是一个功能强大的库,您可以使用ember而不必担心任何事情 在我的例子中,我有一个函数,其中我传递了

Ember内置了对控制器中数组排序的支持,这使得在数据排序顺序更改时更新模板非常方便

但是,我的问题是如何方便地(1)突出显示数据排序依据的当前选定列,以及(2)排序顺序(升序或降序)。通过突出显示,我的意思是添加一个向上或向下箭头,或类似的东西


目前,我正在使用jQuery在视图层中处理这个问题,但我觉得,鉴于Ember处理此类琐碎问题的优雅性,肯定有一个更简单的解决方案。

对于我建议使用的表。这是一个功能强大的库,您可以使用ember而不必担心任何事情

在我的例子中,我有一个函数,其中我传递了表的id、头和数据,表明它是一个多维数组

function setDataTable(tableId,header,data,elementToOrder,typeOrder,index,value,displayLength,paginate,applyClass,callback){
    if(tableId==null||header==null||data==null)
        return;
    var table=$('#'+tableId);
    var tableElement=document.getElementById(tableId);
    if(tableElement==null)
        return;
    if($.fn.DataTable.fnIsDataTable(tableElement))
        table.dataTable().fnDestroy();
    if(elementToOrder==null)
        elementToOrder=0;
    if(typeOrder==null)
        typeOrder="desc";
    if(displayLength===null)
        displayLength="10";
    if(paginate==null)
        paginate=true;
    table.dataTable({
        "sDom":"<'row no-side-margin'<'float-left'l><'float-rigth'f>r>t<'row no-side-margin'<'float-left'i><'float-rigth'p>>",
        "sPaginationType":"bootstrap",
        "oLanguage":{
            "sLengthMenu":"_MENU_ Itens por pagina",
            "sSearch":"Pesquisar:",
            "sInfo":"Mostrando _START_ a _END_ de _TOTAL_ linhas",
            "sInfoEmpty":"Não existem linhas para mostrar",
            "sEmptyTable":"Não há dados disponíveis na tabela",
            "oPaginate":{
                "sNext":"Próximo",
                "sPrevious":"Anterior"
            }
        },
        "fnDrawCallback":function(oSettings){
            if(callback==null)
                return;
            window.setTimeout(callback,100);
        },
        "iDisplayLength":displayLength,
        "aaSorting":[[elementToOrder,typeOrder]],
        "bProcessing":true,
        "bDeferRender":true,
        "bPaginate":paginate,
        "aaData":data,
        "aoColumns":header,
        "fnRowCallback":function(nRow,aData,iDisplayIndex,iDisplayIndexFull){
            if(index==null)
                return;
            if(!applyClass) 
                return;
            if(aData[index]===value)
                $(nRow).addClass("danger");else
                $(nRow).addClass("success");
        }
    });
    table.removeAttr('style');
}
最后是一个多维数组,如:

var myArray = [];
myArray.pushObject(["ok", "4455522", "221334"]);
myArray.pushObject(["not ok", "4455522", "221334"]);
我将它们称为我的函数:

setDataTable("phoneItemsTable", PhoneHeader, myArray );
其他参数用于自定义表


我希望这能帮助你

我也有同样的问题。如何将基于列的客户端排序添加到表中?该表是使用BS3创建的,我想知道是否可以使用它创建datatables。
var myArray = [];
myArray.pushObject(["ok", "4455522", "221334"]);
myArray.pushObject(["not ok", "4455522", "221334"]);
setDataTable("phoneItemsTable", PhoneHeader, myArray );