javascript - Angular搜索功能如何恢复?

标签 javascript angularjs

我有一个很好的小方法来搜索数据。

$scope.searchContacts = function(term) {
  console.log(term)
  $scope.contacts = $scope.contacts.filter(function(contact) {
    var name = contact.name.toLowerCase();
    if(name.indexOf(term.toLowerCase()) > -1) {
      return true;
    }
  });
};

这将使用输入关键字更新 $scope.contacts,但是当存在退格键时,我现在遇到了问题,因为对象已从范围中删除。有办法解决这个问题吗?

最佳答案

考虑使用过滤器,而不是修改原始数组(覆盖它)。因此您不应手动更改 $scope.contacts

在 Controller 中:

$scope.filters = {};

$scope.searchContacts = function() {
    $scope.filters.name = $scope.term;
};

然后在呈现联系人的地方,您将看到如下内容:

<div ng-repeat="contact in contacts | filter:filters">...</div>

演示: http://plnkr.co/edit/2ENLgUXVUmVdJOO27ZeL?p=preview

关于javascript - Angular搜索功能如何恢复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34794420/

相关文章:

ajax - 无法在 ajax 成功时更新 ion-slide

angularjs - 如何在成功处理程序之外使用 $http promise 响应

javascript - NODE.JS 'request' 未在数组中添加响应

javascript - 以编程方式缩放 D3?

javascript - 使用纯 JavaScript 将数据发送到 python cgi 脚本,以便从浏览器进行处理

javascript - 将 Angular 元素绑定(bind)到 Controller 外部的范围

Javascript数组推送和显示

javascript - 如何使用 Knockout.js 在数组中绑定(bind)子数组?

angularjs - 带有 utf-8 字符的 Angular 模板 View 不起作用

javascript - Angular 指令动态模板不适用于绑定(bind)