我已经阅读了很多其他文章,他们都倾向于描述独特复杂的解决方案。我只想根据点击的复选框筛选项目列表(我需要'AND'筛选器&能够在单击复选框之前查看所有项目)。使用复选框和AngularJS过滤ng-repeat列表
这似乎应该是AngularJS的一块蛋糕,但我只是没有得到它。我如何修改我的代码以使过滤工作?
这是我未完成的jsfiddle:http://jsfiddle.net/mromrell/qx3cD/1/
更新小提琴这里:http://jsfiddle.net/mromrell/qx3cD/7/
预先感谢您!
<div ng-controller="MyCtrl">
<li class="no-decoration" ng-repeat="tech in technologyArray">
<label>
<input type="checkbox" ng-model="strict" />{{tech}}</label>
</li>
<hr>
<div ng-repeat="portfolioItem in portfolioArray | filter:strict" class="ng-scope">
<h3>{{portfolioItem.name}}</h3>
</div>
var myApp = angular.module('myApp', []);
function MyCtrl($scope) {
$scope.technologyArray = ["HTML", "CSS", "Django", "Python", "AngularJS", "Javascript", "3rd party Payment API", "3rd party Libraries", "Jquery", "RestfulAPI", "AAAAAHH", "NodeJS", "Mongo", "Express", "Jade", "Wordpress", "MySQL", "Joomla", "Magento", "Jira"]
$scope.portfolioArray = [{
"id": "1",
"name": "Storm Pig",
"technology": ["HTML", "CSS", "Django", "Python", "AngularJS", "Javascript", "3rd party Payment API", "3rd party Libraries"]
}, {
"id": "2",
"name": "Placer",
"technology": ["HTML", "CSS", "Django", "Python", "AngularJS", "Javascript", "Jquery"]
}, {
"id": "3",
"name": "Custom Proposal App",
"technology": ["RestfulAPI", "AAAAAHH", "AngularJS", "HTML", "CSS", "Javascript", "NodeJS", "Mongo", "Express", "Jade"]
}, {
"id": "4",
"name": "21 Zero",
"technology": ["HTML", "CSS", "Wordpress", "MySQL"]
}, {
"id": "5",
"name": "Detour Journal",
"technology": ["HTML", "CSS", "Joomla", "MySQL"]
}, {
"id": "6",
"name": "Dex Custom Websites",
"technology": ["HTML", "CSS", "Wordpress", "MySQL", "Magento", "Jira"]
}, {
"id": "7",
"name": "Conversion Jump",
"technology": ["HTML", "CSS", "Joomla", "MySQL"]
}, {
"id": "8",
"name": "The Canyons Pass",
"technology": ["HTML", "CSS", "Joomla", "MySQL"]
}]
}
这是很好的功能。我唯一的问题是,我怎么才能让它显示所有项目,直到点击一个复选框。并充当'AND'过滤器(所以如果点击三种技术,那么它只显示那些具有所有这三种技术的项目)?我根据你的建议更新了我的小提琴:http://jsfiddle.net/mromrell/qx3cD/7/ –
这是完美的!这正是我希望能够做到的,它非常有意义。我认为你只是创建了我看过的其他10个示例中最简单的例子。谢谢!! –
我已经通过jsfiddle检查了建议的解决方案。它给我“ReferenceError:t未定义”错误。你能帮忙吗? –