gpt4 book ai didi

javascript - 在 AngularJS 中按列标题对表格进行排序

转载 作者:行者123 更新时间:2023-12-03 02:14:12 25 4
gpt4 key购买 nike

有一个对象数组,我从中获取数据并将其放入表中:

$ctrl.myArray = [
{name: "name1", id: 1, children: ["one", "two"]},
{name: "name2", id: 2, children: ["two"]},
{name: "name3", id: 3, children: ["one", "two"]},
{name: "name4", id: 4, children: ["one"]}
];

将数据放入表中工作正常,当我想添加按列排序功能时,问题就出现了。

在 Controller 的构造函数中我添加了以下内容:

this.orderByField = 'name';
this.reverseSort = false;

首先,我尝试仅为 name 列添加排序功能,这是代码:

<thead>
<tr>
<th>
<a href="#" ng-click="orderByField='name'; reverseSort = !reverseSort">
Name <span ng-show="orderByField == 'name'"><span ng-show="!reverseSort">^</span><span ng-show="reverseSort">v</span></span>
</a>
</th>
<th>Id</th>
<th>Children</th>
</tr>
</thead>

<tbody>
<tr ng-repeat="rows in $ctrl.myArray track by $index | orderBy:orderByField:reverseSort">
<td>
{{$ctrl.myArray[$index].name}}
</td>
<td>{{$ctrl.myArray[$index].id}}</td>
<td><span ng-repeat="rows in $ctrl.myArray[$index].children track by $index">
{{$ctrl.myArray[$parent.$index].children[$index]}}</span>
</td>
</tr>
</tbody>

这是错误消息:

[orderBy:notarray] Expected array but received: 0

不知道为什么数组是 0。有什么想法吗?

最佳答案

因此,该问题与 track by $index 有关。你放错地方了。

我已经为它做了一个小工具。以下是链接:

https://plnkr.co/edit/mqA1ofIRUAxal8d8tCr0?p=preview

关于javascript - 在 AngularJS 中按列标题对表格进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49431916/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com