2016-11-23 64 views
0
<input type="text" ng-model="searchBuddy" placeholder="search" /> 
<div class="square"> 
    <div class="list no-padding" ng-repeat='buddy in buddyList | filter : search'> 
    <a class="item item-avatar" href="#"> 
     <img src="{{buddy.photoURL}}"> 
     <h2>{{buddy.firstname}}</h2> 
     <p>{{buddy.lastname}}</p> 
    </a> 
    </div> 
</div>` 

这是我的HTML代码角度滤波不会返回真值

$scope.search = function (item) { 
    if($scope.searchBuddy == undefined || $scope.searchBuddy == '') { 
    return false; 
    } else { 
    if(item.firstname.toLowerCase().indexOf($scope.searchBuddy.toLowerCase())!= -1) { 
     return true; 
    } 
    } 
    return false; 
} 

这是我的控制器代码

在我看到的例子中,如果输入searchbuddy是空的,它会返回false这导致html divng-repeat现在显示任何内容。否则,如果输入了某些东西,并且从firstname得到某些东西,它将返回true并显示与搜索输入对应的数据。但在我的情况下,它不会,我不知道为什么。

+1

你想要什么,请解释更 –

回答

0

第2条if语句存在错误。当您应该使用$ scope.searchBuddy时,您指的是$ scope.searchText,因为这是您使用的模型值。

+0

我编辑它爵士,但仍然不会工作 – Nevin

+0

见https://plnkr.co/edit/EPPJy0NTKi5Yhaqh3xgT? p =预览 – jtsnr

0

用你的NG-模型过滤

<input type="text" ng-model="searchBuddy" placeholder="search"/> 
<div class="square"> 
    <div class="list no-padding" ng-repeat="buddy in buddyList |searchBuddy'> 
    <a class="item item-avatar" href="#"> 
     <img src="{{buddy.photoURL}}"> 
     <h2>{{buddy.firstname}}</h2> 
     <p>{{buddy.lastname}}</p> 
    </a> 
    </div> 
</div> 
0
if(item.firstname.toLowerCase().indexOf($scope.searchBuddy.toLowerCase())!= -1) { 
     return true; 
+0

它仍然无法工作先生..我编辑它,并删除if函数只留下else {return true;}但仍然不会返回true .. – Nevin