jthomas/todomvc — pull request #5 by asudoh (2012-08-28 13:04:45+00:00)
Title: Incorporating 1.8 version of dojox/mvc features

This series of changes contains the following:

Usage of new components in 1.8 dojox/mvc
================

- [Multiple attribute binding](http://dojotoolkit.org/reference-guide/1.8/dojox/mvc/at.html#dojox-mvc-at-api) (Allowing to bind any widget attribute)
- [Data binding direction](http://dojotoolkit.org/reference-guide/1.8/dojox/mvc/at.html#data-binding-direction)
- [Data converter](http://dojotoolkit.org/reference-guide/1.8/dojox/mvc/at.html#data-converter)
- [dojox/mvc/StatefulArray](http://dojotoolkit.org/reference-guide/1.8/dojox/mvc/StatefulArray.html) (introduced in 1.8), which has APIs compatible with native array for manipulation (push()/pop()/shift()/unshift(), etc.), instead of requiring app code to use StatefulModel's add()/remove() interfaces
- More flexible repeating widget ([dojox/mvc/WidgetList](http://dojotoolkit.org/reference-guide/1.8/dojox/mvc/WidgetList.html)), not rebuilding the whole repeating UI upon removals/additions in array
- Newer data model using getters/setters (introduced in 1.8 [dojo/Stateful](http://dojotoolkit.org/reference-guide/1.8/dojo/Stateful.html)) as well as callback for array splice ([dojox/mvc/StatefulArray](http://dojotoolkit.org/reference-guide/1.8/dojox/mvc/StatefulArray.html)'s feature)
- Controllers ([dojox/mvc/EditStoreRefController](http://dojotoolkit.org/reference-guide/1.8/dojox/mvc/EditStoreRefController.html), etc.) to let above model more focus on consistencies among properties, by separating data store interactions, etc. New code tends to let controllers handle actions, so that app template code ([app18.js](https://github.com/asudoh/todomvc/blob/00780aa7e8ecc74296d0ce3bd135c67eb50b997f/architecture-examples/dojo/js/todo/app18.js)) is as simple as possible

Move more toward using reusable components (Less application-specific logic)
================

- todo/_CssToggleMixin to automatically add/remove CSS class upon change in Stateful property, instead of requiring app code to manipulate CSS upon change in state
- todo/ctrl/RouteController to reflect URL hash to a Stateful property, so that data binding can automatically update widgets upon change in URL hash, instead of requiring app code to manipulate DOM upon change in URL has