使用ng-repeat的角度过滤器

时间:2014-10-20 06:14:25

标签: angularjs angularjs-ng-repeat angular-filters

如果你看一下plunkr http://plnkr.co/edit/ilNYwiTwJIwe5HwteErz?p=preview

<select ng-model="query.type">
<li ng-repeat="tech in techs | filter : query">

我有一个疑问 - 如何使用ng-model&amp;过滤表达式&#39;查询&#39;事情(由于缺乏更好的理解)得到类型字段。究竟是什么&#39;查询&#39;事情。我们可以安慰它吗?如何形成query.type&lt; ----&gt;查询的关联。

我完全遵循代码的语义声明的逻辑推理,如 -

<div ng-repeat="tech in techs | filter: { type : 'mvc' }">

很好地击中了头部的quire。对此有何细致的解释?感谢。

2 个答案:

答案 0 :(得分:0)

如果您打印过滤器表达式,请执行以下操作:

<select ng-model="query.type"> {{query}}

你会看到query只是一个普通的javascript对象:

{type: 'mvc'}

因此,当您使用ng-repeat="tech in techs | filter : query之类的过滤器时,您基本上会提供变量,这是一个具有要过滤的属性的对象。

答案 1 :(得分:0)

首先,您需要了解typeString

如果您想查看query的内容,可以将ng-change添加到select,如下所示:

<select ng-model="query.type" ng-change="consoleQuery()">

在控制器中:

 $scope.consoleQuery = function () {
   console.log($scope.query);
 }

所以现在从select中选择一些值后,您会在控制台中看到queryObjectObject {type: "mvp"}

因此,当您在ng-repeat query中使用时:

<li ng-repeat="tech in techs | filter : query">

如果您输入下一个(请参阅Demo):

,则表示相同
<li ng-repeat="tech in techs | filter : {type : query.type}">

在上一个代码中,您将创建一个Object,其中包含属性type,其值为query.type。但至于queryObject只包含1个属性type - 我们可以在ng-repeat中使用它。

演示:http://plnkr.co/edit/8poVKiFWuOjiNFO485Xy?p=preview

希望,这将为您提供正在发生的事情。

相关问题