2013-12-08 39 views
3

似乎不可能用List-with ng-repeat迭代其他任何東西。ng-repeat只能用於迭代List而不能用於迭代或設置

例如,奇怪的下面的代碼不工作:

<span ng-repeat="i in [1, 2, 3].toSet()>{{i}}</span> 

該異常是在包拋出:角/指令/ ng_repeat.dart:126:8:

type '_LinkedHashSet' is not a subtype of type 'List' 

似乎非常限制性地將ng-repead限制在適當的列表中。 它有可能讓ng-repeat迭代任何迭代而不僅僅是List。

奧利弗

+0

你爲什麼要使用Set?你能形容嗎? –

+1

一個集合沒有明確定義其元素的順序,如果排序是時間依賴的或不確定的,那麼我寧願不用每個'$ digest'循環迭代都改變我的列表。另外,據我所知,Javascript中沒有'Iterable'接口。 –

+0

好吧,我不想使用Set,我想使用生成的iterable:myList.where((x)=> myfilter(x))並使其工作我添加到重新創建列表:myList.where((x )=> myfilter(x))。toList()。關於這個集合,集合可能是一個有序集合,所以它可能是有意義的。我們是否想在每次使用ng-repeat時創建一個列表? – odwl

回答

3

它是一個已知的限制(https://github.com/angular/angular.dart/issues/292),主要是因爲ng-repeat依靠[]運算符,它Iterable不支持。也就是說,角度可以在內部將Iterable轉換爲List,使用戶更容易。

+0

https:/ /github.com/angular/angular.dart/issues/292 - 修正 – pavelgj