【问题标题】:Angular JS search filter not working properlyAngular JS 搜索过滤器无法正常工作
【发布时间】:2016-08-28 16:27:29
【问题描述】:

我正在使用 cordova ionic 并使用 angular js 构建应用程序。 我正在尝试为“apps”创建一个搜索过滤器。“app”是一个具有 id 、 name 等的对象。 问题是过滤器似乎正在过滤但不正确。 即使搜索行中的文本不匹配,它总是返回相同的两个“应用程序”。我正在通过名称过滤“应用程序”。名称是一个字符串 - 我检查了它,过滤器接收的“名称”类型实际上是字符串。我什至尝试了自定义过滤器。结果仍然相同。

我认为问题在于“app”是一个对象,但在尝试了各种论坛(包括这个)处理它的许多建议后,它仍然不起作用。

这是搜索行代码:

 <input ng-model="apps[$index].name" type="search" placeholder="Search" class="searchInput">

这是过滤器所在的 ng-repeat 代码:

 <div ng-repeat="app in apps | filter:apps[$index]" ng-if="$index % per_row == 0" class="row">

我也试过了:

  • 在 ng-model 和过滤器中都添加“名称”。
  • 将apps[$index].name 放入ng-model 和filter 中

还有无数其他变化。 可以做些什么来完成这项工作?

感谢您的帮助!

【问题讨论】:

  • 试试&lt;input ng-model="search.name" type="search" placeholder="Search" class="searchInput"&gt;&lt;div ng-repeat="app in apps | filter:search" ng-if="$index % per_row == 0" class="row"&gt;
  • 试过了,没用:(

标签: javascript angularjs cordova filter


【解决方案1】:

你试过了吗?

 <input ng-model="data.appFilter" type="search" placeholder="Search" class="searchInput">
 <div ng-repeat="app in apps | filter:{name: data.appFilter}" ng-if="$index % per_row == 0" class="row">

【讨论】:

  • 只是为了确保......您是否一直在使用控制台检查所有需要的变量?您是否检查过 data.appFilter 是否确实在控制器等中发生了变化?
  • 您好,过滤器正在更改。我通过警报和不同的输出检查了过滤器是自定义过滤器。谢谢。
  • 你搞定了吗?
  • 我无法让它工作:(。我什至切换到 atom(而不是 notepad++)并下载 linter 包(在代码中显示错误)但没有错误。我不是确定这些软件包的效果如何,但是...可能是逻辑有问题。我只是不知道是什么。谢谢您的帮助:)
  • 不确定 per_row var 在那里做什么,如果你查看 chrome:inspect 中的元素面板,你可能会发现一些关于发生了什么的事情。
猜你喜欢
  • 2019-08-05
  • 1970-01-01
  • 1970-01-01
  • 2016-03-18
  • 1970-01-01
  • 2021-04-21
  • 2019-11-12
  • 1970-01-01
  • 2017-04-28
相关资源
最近更新 更多