Page tree

Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.


  • Walk the tree, and find all bindings.
  • Check each binding for a changed value, i.e. where the model value differs from the control value.
    • For items that have the same value: ignore
  • We now have a list of bindings whose value changed. Order these bindings as follows:
    • A "deeper" binding comes before a "higher" binding
    • Bindings at the same "level" execute in order of dom traversal.
  • Now bind all values as per the above ordering.


The UI should act as follows:

  • When the country changes the City should be set to the 1st city of that country in the city list
  • When the city changes the country should be updated.

We bind these controls to two properties in our model, called "country" and "city". The model ensures that:

  • As soon as the city's setter is called, the country property is updated with the city's country.
  • As soon as the country's setter is called, the "city" property is checked.

By ordering like this most binding issues should resolve themselves automatically.