javascript – AngularJS | orderBy过滤器未动态更新

我在AngularJS中的orderBy过滤器遇到麻烦.这是我的设置:
<li ng-repeat="item in listItems.data | orderBy:order">
    <a ng-click="getRelated(item._id)">{{ item.title }}</a>
</li>

控制器的一部分:

$scope.order = 'year';

$scope.listItems = $http.post($scope.url,{'filterType': 'abc','letter': $scope.params.letter});

$scope.setorder = function(order) {
    $scope.order = order;
}

最后我想使用“开关”来订购数据

<span class="sort--title">Sort by</span>
    <a ng-class="{true:'selected',false:''}[order=='title']" href="" ng-click="setorder('title')" class="sort--attribute">Title</a>
    <a ng-class="{true:'selected',false:''}[order=='year']" href="" ng-click="setorder('year')" class="sort--attribute">Year</a>
    <a ng-class="{true:'selected',false:''}[order=='length']" href="" ng-click="setorder('length')" class="sort--attribute">Length</a>
    <a ng-class="{true:'selected',false:''}[order=='date_added']" href="" ng-click="setorder('date_added')" class="sort--attribute">Date Added</a>

当我点击按钮,列表没有被重新排序.
当我手动更改初始$scope.order值时,该列表按属性排序. ng-class也正确更新.我显然错过了一些东西!

解决方法

我不认为你的想法是错误的.它工作正常这是工作 plunker.

你别在别的地方出错了.

app.js

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

app.controller('MainCtrl',['$scope',function ($scope) {
    'use strict';
    $scope.friends = [
        {name: 'John',phone: '555-1276'},{name: 'Mary',phone: '800-BIG-MARY'},{name: 'Mike',phone: '555-4321'},{name: 'Adam',phone: '555-5678'},{name: 'Julie',phone: '555-8765'}
    ];
    $scope.setorder = function (order) {
        $scope.order = order;
    };
}]);

主要html

<ul class="nav nav-pills">
    <li ng-class="{'active': order=='name'}"><a href="#" ng-click="setorder('name')">name</a></li>
    <li  ng-class="{'active': order=='phone'}"><a href="#" ng-click="setorder('phone')">phone</a></li>
</ul>
<ul>
    <li data-ng-repeat="friend in friends|orderBy:order">
        <span class="name">{{friend.name}}</span>
        <span class="phone">{{friend.phone}}</span>
    </li>
</ul>

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...