I have a Countries dropdown, nothin' fancy. My only oddball requirement is that I want to be able to pass in an OnChange function from my controller so the Directive can run it. Here is a Plunker
In the Plunker, I have this basic template:
<select id="countryDirective" ng-model="country" ng-Change="countryChanged()" ng-options="obj.value as obj.name for obj in countries">
<option value="">Choose Your Country</option>
I guess the issue was setValue: '=ngChange'
I changed it to setValue: '&ngChange' and added ng-change="setValue()" to
Now its triggering only once when you change it (verify console log).
I have updated plunker https://plnkr.co/edit/xYi4uoNLeJVvKAoZhjbH?p=preview