【发布时间】:2023-03-03 05:03:22
【问题描述】:
我正在使用 AngularJS 过滤器,效果很好。查看我的代码:
(function () {'use strict';
angular.
module('myApp', []).
controller('WineCtrl', WineCtrl);
// Functions - Definitions
function WineCtrl() {
// Variables - Private
var self = this;
// Variables - Public
self.filter = {};
self.wines = [
{name: 'Wine A', category: 'red'},
{name: 'Wine B', category: 'red'},
{name: 'Wine C', category: 'white'},
{name: 'Wine D', category: 'red'},
{name: 'Wine E', category: 'red'},
{name: 'Wine F', category: 'white'},
{name: 'Wine G', category: 'champagne'},
{name: 'Wine H', category: 'champagne'}
];
// Functions - Public
self.filterByCategory = filterByCategory;
self.getCategories = getCategories;
// Functions - Definitions
function filterByCategory(wine) {
return self.filter[wine.category] || noFilter(self.filter);
}
function getCategories() {
return (self.wines || []).
map(function (wine) { return wine.category; }).
filter(function (wine, idx, arr) { return arr.indexOf(wine) === idx; });
}
function noFilter(filterObj) {
return Object.
keys(filterObj).
every(function (key) { return !filterObj[key]; });
}
}
}());
但是当我选择一个项目时,我不想让其他人隐藏。相反,我想改变其他人的风格(不透明度或其他)。 我该怎么办?
【问题讨论】:
-
你可以使用ng-class给没有选中的其他人添加css效果
-
@Niladri 这不是答案。请给我更详细的信息好吗?谢谢。
-
你可以在重复的div上使用ng-class来设置满足如下条件的css类
ng-class="{checked: wine.category != 'your ng-model value of selected checkbox'} -
其中
checked类有一些css,如下.checked { background-color: red; } -
顺便说一句,如果你想全部显示它们,你必须删除这个过滤器
filter:ctrl.filterByCategory
标签: javascript angularjs filter