繁体   English   中英

带有AngularJS中对象的startWith过滤器

[英]startWith filter with object in AngularJS

我正在尝试使用startWith过滤器,但是它不能正确过滤数据,例如P 让我知道我在这里做错了。

控制器代码-

var app = angular.module('filterSample',[]); app.controller('filterCtrl',函数($ scope){

$scope.data = {
    messages: [
        {       
        "id":"111619EEVz",
        "name":"Tom 67",
        "status":"Pending"
        },
        {
            "id":"115419EEAA",
            "name":"Business 34",
            "status":"Pending"
        },
        {   
            "id":"1B167000WW",
            "name":"Jack 78",
            "status":"Active",
        }
    ]
  }

  $scope.startsWith = function (actual, expected) {
    var lowerStr = (actual + "").toLowerCase();
    return lowerStr.indexOf(expected.toLowerCase()) === 0;
  }
});

HTML-

<div ng-controller="filterCtrl">
      <input type="text" ng-model="search" />
        <ul border="1px" ng-repeat="msg in data.messages | filter:search:startsWith">
          <li>{{msg.name}}</li>
        </ul>
    </div>

工作Plnkr- http: //plnkr.co/edit/tByYZ3jpEk7YPpJnMY11?p=preview

编辑1-

过滤应该像仅在name属性中搜索,而不是在整个对象中搜索一样。

将ng-model更改为search.name

<div ng-controller="filterCtrl">
  <input type="text" ng-model="search.name" />
    <ul border="1px" ng-repeat="msg in data.messages | filter:search:startsWith">
      <li>{{msg.name}}</li>
    </ul>
</div>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM