2014-10-31 53 views
2

每個space是一個帶有布爾屬性的對象,稱爲open,我將它們放入兩個列表中。在這種情況下,我有兩個,一個是true,另一個是false。當列表完全呈現時,這兩個項目都在打開的列表中。以下是我已經試過:如何通過Angular.Dart中的布爾屬性過濾ng-repeat?

ng-repeat="space in ctrl.manager.spaces | filter:open" 
ng-repeat="space in ctrl.manager.spaces | filter:!open" 

ng-repeat="space in ctrl.manager.spaces | filter:open:true" 
ng-repeat="space in ctrl.manager.spaces | filter:open:false" 

ng-repeat="space in ctrl.manager.spaces | filter:{'open':true}" 
ng-repeat="space in ctrl.manager.spaces | filter:{'open':false}" 

{{space.open}}證實,一個是true,一個是false

+0

我只是想在我的控制器使用謂詞函數,但問題也在於名單在值發生變化時不會重新渲染,大概是因爲Angular不知道要觀察什麼(它隱藏在函數中)。 – Derecho 2014-10-31 08:40:52

+0

儘管使用我的謂詞函數{{ctrl.isOpen(space)}}將字段渲染爲測試,但確實更新得很好。 – Derecho 2014-10-31 09:03:35

+0

您是否嘗試過濾:{space.open:true}? – 2014-10-31 09:16:31

回答

4

應用此過濾器的正確方法是

ng-repeat="item in items | filter: {open: 'true'} 
ng-repeat="item in items | filter: {open: '!true'} 

(放在引號'true'