Javascript orderby和track by$index在AngularJS中不起作用

Javascript orderby和track by$index在AngularJS中不起作用,javascript,html,angularjs,Javascript,Html,Angularjs,我已经订购了一个列表并使用了track by$index。但看起来,这个列表并没有排序 <div ng-controller="MyCtrl"> <div ng-repeat="rfi in rfiList | orderBy:['name', 'status'] track by $index"> <p> {{rfi.name}}==>{{rfi.status}} <button ng-click="searc

我已经订购了一个列表并使用了
track by$index
。但看起来,这个列表并没有排序

<div ng-controller="MyCtrl">
  <div ng-repeat="rfi in rfiList | orderBy:['name', 'status'] track by $index">
    <p>
      {{rfi.name}}==>{{rfi.status}}
      <button ng-click="search($index)">OK      
     </button>
    </p>
  </div>
</div>
这里发生的情况是,在
search
方法中,rfiList[index]在更改列表顺序后没有获得值

在列表排序后,如何使用索引获取值


以下是

中的代码。由于管道/过滤器的原因,列表在代码的前端部分排序,而不是在控制器本身

如果您需要控制器端的有序列表,请尝试在控制器本身中对其进行排序


希望有帮助。

由于管道/过滤器的原因,列表在代码的前端部分排序,而不是在控制器本身

如果您需要控制器端的有序列表,请尝试在控制器本身中对其进行排序

希望有帮助。

试试这个:

var myApp = angular.module('myApp', []);

function MyCtrl($scope) {
  $scope.rfiList = [{
      name: 'GHI',
      status: true
    },
    {
      name: 'GHI',
      status: false
    },
    {
      name: 'DEF',
      status: true
    },
    {
      name: 'DEF',
      status: false
    },
    {
      name: 'ABC',
      status: true
    },
    {
      name: 'JKL',
      status: true
    }
  ];

  $scope.search = function(index,rfi) {
    alert('Index is=' + index + ' and value is=' + rfi.name + '-->' + rfi.status);
  };
}
在你的html中

<div ng-controller="MyCtrl">
  <div ng-repeat="rfi in rfiList | orderBy:['name', 'status'] track by $index">
    <p>
      {{rfi.name}}==>{{rfi.status}}
      <button ng-click="search($index, rfi)">OK      
     </button>
    </p>
  </div>
</div>


{{rfi.name}==>{{rfi.status}
好啊

试试这个:

var myApp = angular.module('myApp', []);

function MyCtrl($scope) {
  $scope.rfiList = [{
      name: 'GHI',
      status: true
    },
    {
      name: 'GHI',
      status: false
    },
    {
      name: 'DEF',
      status: true
    },
    {
      name: 'DEF',
      status: false
    },
    {
      name: 'ABC',
      status: true
    },
    {
      name: 'JKL',
      status: true
    }
  ];

  $scope.search = function(index,rfi) {
    alert('Index is=' + index + ' and value is=' + rfi.name + '-->' + rfi.status);
  };
}
在你的html中

<div ng-controller="MyCtrl">
  <div ng-repeat="rfi in rfiList | orderBy:['name', 'status'] track by $index">
    <p>
      {{rfi.name}}==>{{rfi.status}}
      <button ng-click="search($index, rfi)">OK      
     </button>
    </p>
  </div>
</div>


{{rfi.name}==>{{rfi.status}
好啊


请遵循以下代码,它工作正常:

HTML

<div ng-controller="MyCtrl">
  <div ng-repeat="rfi in rfiList | orderBy:name:status track by $index"> 

    <p>
      {{rfi.name}}==>{{rfi.status}}
      <button ng-click="search($index)">OK      
     </button>
    </p>
  </div>
</div>

请遵循以下代码,它工作正常:

HTML

<div ng-controller="MyCtrl">
  <div ng-repeat="rfi in rfiList | orderBy:name:status track by $index"> 

    <p>
      {{rfi.name}}==>{{rfi.status}}
      <button ng-click="search($index)">OK      
     </button>
    </p>
  </div>
</div>

谢谢,它起作用了。就像传递rfi的想法:)。我应该会想到:汉克斯,它起作用了。就像传递rfi的想法:)。我应该会想到:P