js中优化文本搜索

js中优化文本搜索

我是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/

10-12 15:45