gpt4 book ai didi

javascript - AngularJS ng-repeat 结合 ng-click=orderByField

转载 作者:行者123 更新时间:2023-11-29 19:18:14 24 4
gpt4 key购买 nike

AngularJS

$scope.orderByField = 'firstName';
$scope.reverseSort = false;
$scope.headers = ['First Name':'firstName','Last Name':'lastName']

查看

<th
ng-repeat="(key,value) in headers"
ng-click="orderByField=value; reverseSort = !reverseSort">
{{ key }}
<span ng-show="orderByField == value">
<span ng-show="!reverseSort"> &#9652</span>
<span ng-show="reverseSort"> &#9662</span>
</span>
</th>

这是我的代码,我试图从 $scope.headers 中的键列表创建所有 table 标题,并使每个标题可排序。

出于某种原因,这段代码不起作用,我在网络控制台中也没有收到任何错误。

最佳答案

嵌套范围存在问题。阅读 https://github.com/angular/angular.js/wiki/Understanding-Scopes 中的嵌套范围问题.

关于如何修复它以创建对象并使用那里的值:

$scope.modelData = {};
$scope.modelData.orderByField = 'firstName';
$scope.modelData.reverseSort = false;
$scope.headers = {'First Name':'firstName','Last Name':'lastName'}

现在,相应地使用:

<th ng-repeat="(key,value) in headers"
ng-click="modelData.orderByField = value; modelData.reverseSort = !modelData.reverseSort">
{{ key }}
<span ng-show="modelData.orderByField == value">
<span ng-show="!modelData.reverseSort"> &#9652</span>
<span ng-show="modelData.reverseSort"> &#9662</span>
</span>
</th>

就像@VVK 回答的那样,您的代码中存在问题。不确定您要定义什么 ArrayObject

对象应该这样定义:{'First Name':'firstName','Last Name':'lastName'}(它们应该以 { 和以 结束,但不以 []);

结尾

将您的 HTML 代码更改为使用 modelData,然后它将起作用:

<tr ng-repeat="item in data | orderBy:modelData.orderByField:modelData.reverseSort">

关于javascript - AngularJS ng-repeat 结合 ng-click=orderByField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34355600/

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