我是angularjs的新手。
这是我的代码:
$scope.styles = [{"name":"walking"},{"name":"Food"},{"name":"culture"}]
我创建了复选框列表
<div ng-repeat="style in styles">
<input type="checkbox"> {{style}}
</div>
我正在获取具有样式值的Tours套餐,例如:
walking ,food
$scope.tours = [{"Tourname":"sky walk","style:walking "},{"Tourname":"Accra markets","style":"food,walking"}]
我的目标:当我单击复选框中的样式时,仅显示该样式的所有游览。
任何帮助或示例链接?
最佳答案
过滤器最适合从集合中过滤数据。您可以将filter
过滤器与自己的范围谓词功能一起使用:
控制器中的谓词:
$scope.hasStyle = function(item){
return $scope.styles.some(function(style){
if(style.selected && item.style.indexOf(style.name) > -1) {
return true;
}
})
}
视图:
<div ng-repeat="style in styles">
<input type="checkbox" ng-model="style.selected">{{style.name}}
</div>
<div ng-repeat="tour in tours | filter: hasStyle">{{tour | json}}</div>
Demo
关于javascript - 在angular js中优化文本搜索,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24074170/