The documentation says that there is two-way binding with check boxes. To me, this implies that if the model changes the UI would change. However, if I change the “selected_items” on the model, the view doesn’t change.
In the html, literal object are created and assign to model of the checkboxes, which by default will make Aurelia unable to compare the value, since the object created in the view model will be different with the object created in the view. Simply this:
{ item_id: 1 } !== { item_id: 1}
What you can do is to give each checkbox a matcher, as an equality instruction so it can handle the above scenario: