2015-04-05 59 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