MVVM with AngularJS : Observables• Don’t need them. Means your objects do not need an INPC type of implementation.• “KO dependency tracking is a clever feature for a problem which angular does not have” – heard on StackOverflow
How does it know if anything changed?• Angular remembers the value and compares it to previous value.• This is basic dirty checking. If there is a change in value, then it fires the change event.• To know when angular should check the new value it we have scope.
Why Angular chose a different method?• Better syntax, especially for templates • Google plans to make it a web standard so browsers can do this natively.• Change listeners fire immediately on setter, which is a problem, since the change listener can further change data, which fires more change events.
Quick AngularJS tutorial 2• How browsers could support it natively
Angular js performance• Humans are • Slow – anything faster than 50ms is imperceptible • Limited - cant really show more than about 2000 pieces of information to a human• Can you do 2000 comparisons in 50 ms even on slow browsers? That means that you have 25us per comparison.
Angular• http://docs.angularjs.org/misc/faq • We run our extensive test suite against the following browsers: Safari, Chrome, Firefox, Opera, IE8, IE9 and mobile browsers (Android, Chrome Mobile, iOS Safari)• Yahoo’s Class A browser
Knockout• http://knockoutjs.com/documentation/browser- support.html • Mozilla Firefox 2.0+ (latest version tested = 3.6.8) • Google Chrome (tested on version 5 for Windows and Mac; should work on older versions too) • Microsoft Internet Explorer 6, 7, 8, 9, 10 • Apple Safari (tested on Windows Safari version 5, Mac OS X Safari version 3.1.2, and iPhone Safari for iOS 4; should work on newer/older versions too) • Opera 10 for Windows• Knockout was also found to work on the following browsers (though we don’t recheck these for every release): • Opera Mini • Google Android OS browser (OS version 2.2)