Angular Datatables在超链接内排序文本而不是href

chr*_*ton 5 jquery datatables angularjs

我试图按字母数字排序一个包含一个锚标记的列,这个标记似乎在"拦截"排序函数.它看起来像以下几行:

<tbody>
    <tr><td><a href="/1"></a>Fox</td><tr>
    <tr><td><a href="/2"></a>Cow</td><tr>
    <tr><td><a href="/3"></a>Dog</td><tr>
</tbody>
Run Code Online (Sandbox Code Playgroud)

它会返回Fox,Cow,DogDog,Cow,Fox分别.如何根据a标签的内容而不是a标签本身的文本进行排序?

ctrl.dtOptions = DTOptionsBuilder.newOptions()
    .withPaginationType('full_numbers')
    .withOption("order", [
        [1, "asc"]
    ])
    .withOption('paging', false)
    .withOption('searching', false)
    .withOption("sDom", '<"top">rt<"bottom"flp><"clear">');

ctrl.dtColumnDefs = [
    DTColumnDefBuilder.newColumnDef(0).notSortable(),
    DTColumnDefBuilder.newColumnDef(1)
];
Run Code Online (Sandbox Code Playgroud)

1:不可排序
2:字母数字(问题栏)
3-10:字母数字 - td只有数字,所以它排序很好

Gyr*_*com 1

尝试用于.withOption('type', 'html')包含 HTML 的列,如下所示:

ctrl.dtColumnDefs = [
    DTColumnDefBuilder.newColumnDef(0).notSortable(),
    DTColumnDefBuilder.newColumnDef(1).withOption('type', 'html')
];
Run Code Online (Sandbox Code Playgroud)

文档中:

html- HTML 标签的基本字符串处理

排序 - 删除 HTML 标签进行
排序过滤 - 从过滤字符串中删除 HTML 标签

有关详细信息,请参阅columns.type 。