gpt4 book ai didi

Angularjs: Controller 中的$filter

转载 作者:行者123 更新时间:2023-12-03 13:21:00 28 4
gpt4 key购买 nike

让这个过滤器工作有问题。

$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);
}
});

$scope.images 返回数据库中的图像列表。在初始上传时,sortOrder 列填充为“0”,因为它们可以通过 ui:sortable 进行排序。因此,在初始 View 中,我将排序顺序基于文件名。在初始 View 之后,数据库被写入,第一个图像被赋予 1 的 sortOrder 并从那里递增。

这可能是我对 $filter 的误解,但是 $scope.images = $filter('orderBy')($scope.images,'sortOrder');不是根据 sortOrder 对我的 $scope.images 进行排序。

谢谢

最佳答案

我为您创建了一个演示,希望您可以比较代码并找出问题所在。

我猜你可能忘记注入(inject) $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');
}
}
}

Working Demo

关于Angularjs: Controller 中的$filter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18540704/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com