orderBy没有按预期工作:Angularjs

Bhu*_*hal 30 javascript angularjs angularjs-orderby

我的阵列是:BS.其结构是:

Array[317]
0: Object
   $$hashKey: "022"
   name: "Los Angeles Comm."
.
.
.
..
Run Code Online (Sandbox Code Playgroud)

BS是一个数组.每个值都是带有名称字段的JSon对象.

我想根据他们的名字对BS的所有值进行排序.我在尝试 :

<option ng-repeat="item in BS | orderBy:item.name"  value="{{item.name}}">{{item.name}}</option>
Run Code Online (Sandbox Code Playgroud)

我也尝试过:orderBy:nameorderBy:item[name].什么都行不通.为什么这不起作用,是什么代码正确?

Aja*_*wal 79

看看下面的HTML

<!DOCTYPE html>
<html ng-app="app">
<head>
    <title></title>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.5/angular.min.js"></script>
</head>
<body>
    <div ng-controller="item">
        <ul>
            <li ng-repeat="item in items|orderBy:'name'">
                {{item.name}}
            </li>
        </ul>
    </div>
    <script>
        var AppModule = angular.module('app', []);
        function item($scope) {
            $scope.items = [{ name: 'tur' }, { name: 'abc' }, { name: 'xyx' }];

        }
    </script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

  • @dmackerman,`track by ---`必须始终位于整个表达式的最后,包括过滤器右侧.然后`orderBy`按预期工作. (43认同)
  • 这里需要注意的一点是,如果你使用`track by ---'语法,你的orderBy将不再有效. (12认同)