让这个过滤器工作有问题。
$scope.imgCollection.then(function (images) {
$scope.images = images.thisGal_images;
if ($scope.images[0].order == '0') {
console.log('orgName');
$scope.images = $filter('orderBy')($scope.images, 'orgName');
} else {
console.log('sort order');
$scope.images = $filter('orderBy')($scope.images, 'sortOrder');
console.log($scope.images);
}
});
图像返回数据库中的图像列表。在最初的上传中,sortOrder列填充了‘0’,因为它们可以通过ui:sortable进行排序。因此,在初始视图上,我将排序顺序建立在文件名的基础上。在最初的视图之后,DB被写入,第一个图像被赋予1的SortOrder,并从那里递增。
这可能是我对$filter的误解,但是$scope.images = $filter('orderBy')($scope.images,'sortOrder');
不是基于sortOrder来订购我的$Scope.图像。
谢谢
发布于 2018-04-12 14:34:31
我为你创建了一个演示,希望能够比较代码并解决问题。
我想你可能忘了$filter
模块。请看一下演示。
<div ng-app="myApp" ng-controller="ctrl">
<div ng-repeat="image in images">{{image}}</div>
<button ng-click="order('0')">By orgName</button>
<button ng-click="order('1')">By sortOrder</button>
</div>
var app = angular.module('myApp', []);
function ctrl($scope, $filter) {
$scope.images = [{
orgName: 'B',
sortOrder: 111
}, {
orgName: 'A',
sortOrder: 12
}, {
orgName: 'D',
sortOrder: 13
}, {
orgName: 'C',
sortOrder: 14
}];
$scope.order = function (order) {
if (order == '0') {
$scope.images = $filter('orderBy')($scope.images, 'orgName');
} else {
$scope.images = $filter('orderBy')($scope.images, 'sortOrder');
}
}
}
https://stackoverflow.com/questions/-100004400
复制相似问题