ngModelController: trigger change when only property of model changes #5449
Description
Description
If you have an input box that is associated with a model that is an array (or an object), the update machinery ($formatter pipeline and so on) is not triggered if only a property on the array or object changes. This is because ngModelController watches the model without checking objectEquality.
The multiple select
input has a kind of hack that triggers a call to $render if the model updates a property but this fails to call the $formatter pipeline. If we push a new option into the array then the select renders OK but a required
validator would fail to update.
Reproduction
See this http://plnkr.co/edit/yNFihkAgrVhHYx7lOtMc?p=preview.
Suggested Fix
Asking the NgModelController
to watch with object equality would probably be the simplest solution. There may be a performance impact, though since most models are not objects or arrays then this should short-circuit quite quickly for those values.
Angular Version: 1.2.5+
OS: all
Related to : #5337