Short question: if I have an ng-repeat set up where the underlying 
collection is a plain object rather than an array, things still mostly work 
(except for sorting, for some reason). I'm wondering if this is intended / 
supported, or if I'm relying on a bug. Follow-up question is, how does one 
get that to work with filters and sorts, as they don't seem to work quite 
right.

Longer version of the question:

My specific issue is that my api objects have large-ish lists of related 
objects, and that list can change over time (e.g., comments on a forum 
post). Ideally, I'd be able to apply these changes without invalidating the 
existing collection. So instead of doing $http.get().then (data)-> 
@relatedList = data.values, I'd *way* rather only append to the end of the 
list new entries in said list. My initial inclination is to just iterate 
over data.values and say @relatedList[value.id] = value, ending up with an 
object which is array-esque {1: {id: 1, ...}, 4: {id: 4, ...} ...}, instead 
of [, [id:1...], , , [id: 4...] ...] getting created in the case where 
relatedList is initialized as [] instead of {} 

tangential - I'm relatively new to javascript, so I don't actually know if 
having a very large sparse array is actually all that bad.

The other alternative is to just use something like Array.some on the 
relatedList like @relatedList.push(value) unless @relatedList.some 
(v)->v.id == value.id 

That strikes me a bit expensive for these kinds of updates. Then again, 
maybe it's no big deal - my @relatedList is probably only going to average 
in the 20-50 range for most cases. So, maybe I'm doing premature 
optimization.

Anybody have any thoughts on this?

e

-- 
You received this message because you are subscribed to the Google Groups 
"AngularJS" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/angular.
For more options, visit https://groups.google.com/d/optout.

Reply via email to