要解决这个问题,可以使用AngularJS的过滤器来对时间列表进行排序。以下是一个示例代码:
HTML部分:
- {{ time | date:'HH:mm:ss' }}
JavaScript部分:
angular.module('myApp', [])
.controller('MyController', ['$scope', function($scope) {
$scope.times = [
new Date('2021-01-01T09:00:00'),
new Date('2021-01-01T08:00:00'),
new Date('2021-01-01T10:00:00')
];
$scope.changeScope = function() {
$scope.times.push(new Date('2021-01-01T07:00:00'));
};
}]);
在上面的代码中,使用了orderBy
过滤器来对时间列表进行排序。它的参数'getTime'
表示按照时间的毫秒数进行排序。这样,在作用域改变后,时间列表会自动按照时间顺序进行排序。
点击"改变作用域"按钮后,会向时间列表添加一个新的时间项。由于使用了orderBy
过滤器,新的时间项会被正确地插入并排序。
你可以根据自己的需求修改时间列表和改变作用域的逻辑。