It doesn't use a timer, it checks for changes when any angular event is triggered. For example, if you do an ajax request, the response coming back and being handled will trigger an $apply. If you're handing your own events or doing some logic out side angular, you simply call scope.$apply somewhere and it'll update everything.
Misko's answered this on stack overflow, which is worth reading: http://stackoverflow.com/questions/9682092/databinding-in-angularjs >From my experience, Angular is absolutely fast enough, and using plain JS objects dramatically simplifies your code. On 2 July 2012 17:01, Dmytrii Nagirniak <dna...@gmail.com> wrote: > Hmm, that is a bit disappointing. > > I hoped it would use the setters/getters where supported and only fall > back to the timers otherwise. > > From this perspective KnockoutJS is still my favorite :) > I suspect that with timers there may be all sorts of other issues when the > events will fire out of the expected order. > > But I maybe I'm just too concerned :) > > > On 2 July 2012 16:29, Simon Russell <si...@bellyphant.com> wrote: > >> It's definitely a polling design, from what I can see: >> https://github.com/angular/angular.js/blob/master/src/ng/rootScope.js >> >> Not entirely sure yet what actually causes the polling to occur. (I >> can't see any obvious uses of setTimeout or setInterval that would >> mean it's just a simple timer, so it may be based on events + some >> other stuff I guess.) >> >> Simon. >> >> On Mon, Jul 2, 2012 at 4:22 PM, Julio Cesar Ody <julio...@gmail.com> >> wrote: >> > One thing's for sure: large AngularJS apps are the only thing other >> > than WebGL that's guaranteed to turn your MBP into a portable heater. >> > >> > Hey, I had to say something. Sue me. >> > >> > >> > >> > On Mon, Jul 2, 2012 at 4:19 PM, Samuel Richardson <s...@richardson.co.nz> >> wrote: >> >> I asked Glen the same question on the night after his talk. I can >> confirm >> >> the internal timer and some "magic" around the object comparison. >> >> >> >> Samuel Richardson >> >> www.richardson.co.nz | 0405 472 748 >> >> >> >> >> >> >> >> On Mon, Jul 2, 2012 at 4:12 PM, Ivan Vanderbyl < >> ivanvander...@gmail.com> >> >> wrote: >> >>> >> >>> Hi Dmytrii, >> >>> >> >>> In a nutshell from what I have read it uses an internal timer which >> >>> continually checks the value of all keys against the last known >> value. I'm >> >>> not sure how efficient this is but it seems to be pretty fast in the >> smaller >> >>> apps where I've seen it used. >> >>> >> >>> — Ivan >> >>> >> >>> On 02/07/2012, at 4:08 PM, Dmytrii Nagirniak wrote: >> >>> >> >>> Hi, >> >>> >> >>> The angularjs looks really great. I have been a big fan of KnockoutJS >> >>> which is similar to angularjs in some aspects. >> >>> >> >>> But I wonder how angular can do the two-way binding on plain >> JavaScript >> >>> objects? >> >>> JS doesn't _generally_ have setters and getters and it gets even more >> >>> complicated with arrays. >> >>> >> >>> KnockoutJS solved those problems by wrapping every property/obect in >> >>> "ko.observable/ko.observableArray". >> >>> >> >>> I don't understand how angular does that. It must be doing some >> >>> "smart-ass" things during the compilation. >> >>> >> >>> Anybody knows that? >> >>> >> >>> Cheers, >> >>> Dmytrii >> >>> >> >>> On 29 June 2012 11:41, Ben Hoskings <b...@hoskings.net> wrote: >> >>>> >> >>>> For those that didn't see Glen's talk, have a quick look at the >> slides. >> >>>> >> >>>> In particular, check out the embedded HTML examples. They're hooked >> up to >> >>>> their corresponding iframes using angular. >> >>>> >> >>>> Try editing the {{ handlebar-like }} snippets to see how angular >> glues it >> >>>> all together. It takes almost no JS to make that happen. >> >>>> >> >>>> - Ben >> >>>> >> >>>> >> >>>> >> >>>> On 29/06/2012, at 11:34 AM, Glen Maddern wrote: >> >>>> >> >>>> > Here's my talk on AngularJS from last night: >> >>>> > >> >>>> > http://sup-angularjs.herokuapp.com/ >> >>>> > >> >>>> > If that's whet your appetite for writing awesome frontends with >> hardly >> >>>> > any code, go have a look at the source: >> >>>> > >> >>>> > https://github.com/geelen/angular_presentation >> >>>> > >> >>>> > AngularJS is pro, don't you want to be pro? >> >>>> > >> >>>> > -glen >> >>>> > @glenmaddern >> >>>> > >> >>>> > >> >>>> > -- >> >>>> > You received this message because you are subscribed to the Google >> >>>> > Groups "Ruby or Rails Oceania" group. >> >>>> > To post to this group, send email to >> rails-oceania@googlegroups.com. >> >>>> > To unsubscribe from this group, send email to >> >>>> > rails-oceania+unsubscr...@googlegroups.com. >> >>>> > For more options, visit this group at >> >>>> > http://groups.google.com/group/rails-oceania?hl=en. >> >>>> >> >>>> -- >> >>>> You received this message because you are subscribed to the Google >> Groups >> >>>> "Ruby or Rails Oceania" group. >> >>>> To post to this group, send email to rails-oceania@googlegroups.com. >> >>>> To unsubscribe from this group, send email to >> >>>> rails-oceania+unsubscr...@googlegroups.com. >> >>>> For more options, visit this group at >> >>>> http://groups.google.com/group/rails-oceania?hl=en. >> >>>> >> >>> >> >>> >> >>> -- >> >>> You received this message because you are subscribed to the Google >> Groups >> >>> "Ruby or Rails Oceania" group. >> >>> To post to this group, send email to rails-oceania@googlegroups.com. >> >>> To unsubscribe from this group, send email to >> >>> rails-oceania+unsubscr...@googlegroups.com. >> >>> For more options, visit this group at >> >>> http://groups.google.com/group/rails-oceania?hl=en. >> >>> >> >>> >> >>> -- >> >>> You received this message because you are subscribed to the Google >> Groups >> >>> "Ruby or Rails Oceania" group. >> >>> To post to this group, send email to rails-oceania@googlegroups.com. >> >>> To unsubscribe from this group, send email to >> >>> rails-oceania+unsubscr...@googlegroups.com. >> >>> For more options, visit this group at >> >>> http://groups.google.com/group/rails-oceania?hl=en. >> >> >> >> >> >> -- >> >> You received this message because you are subscribed to the Google >> Groups >> >> "Ruby or Rails Oceania" group. >> >> To post to this group, send email to rails-oceania@googlegroups.com. >> >> To unsubscribe from this group, send email to >> >> rails-oceania+unsubscr...@googlegroups.com. >> >> For more options, visit this group at >> >> http://groups.google.com/group/rails-oceania?hl=en. >> > >> > -- >> > You received this message because you are subscribed to the Google >> Groups "Ruby or Rails Oceania" group. >> > To post to this group, send email to rails-oceania@googlegroups.com. >> > To unsubscribe from this group, send email to >> rails-oceania+unsubscr...@googlegroups.com. >> > For more options, visit this group at >> http://groups.google.com/group/rails-oceania?hl=en. >> > >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Ruby or Rails Oceania" group. >> To post to this group, send email to rails-oceania@googlegroups.com. >> To unsubscribe from this group, send email to >> rails-oceania+unsubscr...@googlegroups.com. >> For more options, visit this group at >> http://groups.google.com/group/rails-oceania?hl=en. >> >> > -- > You received this message because you are subscribed to the Google Groups > "Ruby or Rails Oceania" group. > To post to this group, send email to rails-oceania@googlegroups.com. > To unsubscribe from this group, send email to > rails-oceania+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/rails-oceania?hl=en. > -- You received this message because you are subscribed to the Google Groups "Ruby or Rails Oceania" group. To post to this group, send email to rails-oceania@googlegroups.com. To unsubscribe from this group, send email to rails-oceania+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rails-oceania?hl=en.