2015-04-05 58 views
3

在HTML模板我有指令ng-repeat为什么不过滤Angular JS?

<div ng-repeat="friend in friendList.active | filter:searchName"> 

而且输入字段ng-model="searchName"

<input type="text" ng-model="searchName" maxlength="10" placeholder=""> 

当我键入内部ng-repeat文本块是没有排序,为什么呢?

响应friendList.active AJAX是:

{"534":{"name":"Danil","photo":"http://who.com/public/images/non_photo_user.png","id":"534","unread":null,"online":0},"541":{"name":"Aysel Bukarova","photo":"http://who.com/public/images/non_photo_doctor.png","id":"541","unread":null,"online":0}} 
+0

需要更多代码。控制台中的错误? – dfsq 2015-04-05 21:25:16

+0

我想你错过了为输入设置名称,你将设置名称后,它应该工作 – 2015-04-05 21:26:08

+0

有没有错误。设置属性'name =“searchName”'? – Sahe 2015-04-05 21:27:54

回答

2

头需要将响应对象转换阵列中,因为过滤器正在与阵列。或者你可以编写你自己的过滤器,它将与对象的属性一起工作。请参阅Rise Ledger的样本。输入字段的名称不是必需的。

+0

谢谢,我接受你的答案是解决方案。我已转换并且所有工作都正常 – Sahe 2015-04-05 22:18:01

+0

如果不需要索引(每个项目中都有一个'id'),那么可以在服务器端转换对象。 – IvanMalenko 2015-04-05 22:18:59