The title is long and complicated. I have a repro of the issue using Derby's component tests: https://github.com/derbyjs/derby/commit/ee2e1b05e8f8247fd5556a781a3a9b402e025a4f Also putting the example here: ``` <Body:> <view is="greeting-list" greetingIds="{{_page.greetingIds}}"/> <greeting-list:> {{each @greetingIds as #id, #i}} <div>{{_page.greetings[#id]}}</div> {{/each}} ``` Doing a `model.set('_page.greetingIds.0', 'foo')`, I'd expect the binding to update, but it doesn't. The binding _does_ update properly under these other scenarios: 1. Setting the entire array: `model.set('_page.greetingIds', ['foo'])` 2. Changing the template to use the array index: `{{ _page.greetings[@greetingIds[#i]] }}` 3. Changing the template to not use an attribute: `{{each _page.greetingIds as #id, #i}}`