当前位置: 首页 > 面试题库 >

在AngularJS中按多个复选框过滤

潘璞瑜
2023-03-14
问题内容

第一次在这里发布问题,如果违反任何Stack Overflow礼节,请提前道歉!:-)

我第一次去一些AngularJS,以便为我的老板创建概念证明。这是一个基本的租车列表应用程序,主列中有结果列表,侧面有一个过滤器面板。我设法从JSON对象中提取结果,并应用一个基本的过滤器,如下所示;

<article data-ng-repeat="result in results | filter:search" class="result">
    <h3>{{result.carType.name}}, &pound;{{result.price.value}}</h3>
    <img class="car-type" alt="{{result.carType.name}}" src="{{result.carType.image}}" />
    <ul class="result-features">
            <li>{{result.carDetails.hireDuration}} day hire</li>
            <li data-ng-show="result.carDetails.airCon">Air conditioning</li>
            <li data-ng-show="result.carDetails.unlimitedMileage">Unlimited Mileage</li>
            <li data-ng-show="result.carDetails.theftProtection">Theft Protection</li>
    </ul>
</article>

筛选器

<fieldset>
Doors: 
<select data-ng-model="search.carDetails">
    <option value="">All</option>
  <option value="2">2</option>
  <option value="4">4</option>
</select>

</fieldset>

…我还无法解决的一件事是如何添加一组复选框以应用过滤器,例如“汽车类型”,其中包含“迷你”,“紧凑”等选项, “家庭”等等-
这样用户就可以一次按一个或多个选项进行过滤。我知道我需要使用“ ng-model”,也许还要使用“ ng-
change”,我只是不知道如何将其应用于一组复选框…?

更新
:我已经创建了一个插件,所以您可以查看我的位置:http
://plnkr.co/edit/lNJNYagMC2rszbSOF95k?p=preview


问题答案:

我将所有复选框绑定到一个对象说:

app.js

$scope.cartypes = {mini: false, compact:false};

index.html

<input type="checkbox" data-ng-model="cartypes.mini"> Mini
<input type="checkbox" data-ng-model="cartypes.compact"> Compact

然后创建一个自定义过滤器函数,该函数返回对象是否包含所有(如果您想要的话)选中的选项。

app.js

app.filter('myfilter', function() {
    return function(items, options ) {
      // loop over all the options and if true ensure the car has them
      // I cant do this for you beacause I don't know how you would store this info in the car object but it should not be difficult
      return carMatches;
    };
});

然后可以将其添加到模板中,如下所示:

index.html

<article data-ng-repeat="result in results | filter:search | myfilter:cartypes" class="result">


 类似资料:
  • 问题内容: 我想过滤结果。 有一个葡萄酒清单,我的愿望是当未选中任何复选框时,将显示整个葡萄酒清单。 当仅选中1个复选框时,显示相关类别 当选中多个复选框时,将显示相关类别 我是AngularJS的新手,我尝试了ng-model都没有成功,这是没有与函数关联的ng-model的代码: 如何使用ng-model或ng-change将功能与每个复选框按钮相关联以具有实时过滤模型? 问题答案: 只是添加

  • 问题内容: 如何使用Checkbox过滤angularJS中的多个值(或操作) http://jsfiddle.net/samibel/va2bE/1/ 问题答案: 使用过滤器功能: 视图: 控制器:

  • 我一直在研究这个问题,但我找不到一个带有复选框的get drawable的解决方案。我试图做的是,当你点击这个特定的复选框时,它会过滤相应颜色的复选框。顺便说一下,这是一个片段。所以,我有可以是红色、黄色或绿色的复选框。如果用户点击它们,它会改变颜色。例如,我有一个黄色的复选框,它是chkProgress,当它被单击时,我想找到所有黄色的复选框,并筛选黄色的复选框。所以,我有可绘制的ID,我需要得

  • 问题内容: 我有以下代码,通过检查球员的裤子大小复选框,尝试对阵列中的球员进行过滤。 我知道我在转发器中有数据数组,然后在数据数组元素(两个不同的div)之外的元素中过滤输入,这可能是导致断开连接的原因吗?因为当我将复选框添加到Repeater元素时我注意到,所以当我单击复选框时,确实会得到某种形式的反馈数组。 绑定搜索输入框非常容易实现,但是我花了太多时间获取这个简单的复选框来过滤数据。 因此,

  • 问题内容: 我在这里查找了一些示例,但是其中许多示例要么太高级以至于无法掌握PHP,要么它们的示例过于针对自己的项目。我目前正在努力处理PHP表单的非常基本的部分。 我正在尝试创建一个带有几个复选框的表单,每个复选框分配一个不同的值,我希望将这些复选框发送到一个变量(数组?),以便以后可以回显/使用,在我的情况下,我将在其中发送已检查的值一封电邮。 到目前为止,我已经尝试了一些变体,但是最接近的是

  • 问题内容: 我有一个复选框列表,其中至少一个是强制性的。我试图通过AngularJS验证来实现这一点,但是很难。下面是我的代码: 以下是plunker中的代码:http ://plnkr.co/edit/Bz9yhSoPYUNzFDpfASwt?p=preview 有没有人在AngularJS上做到这一点?使复选框成为必需,迫使我选择所有复选框值。AngularJS文档中也未记录此问题。 问题答案