ng-model in select-2 takes value from contents of the option, instead of ng-value, when the contents contain more than one Angular expression #15413
Description
Note: for support questions, please use one of these channels: https://github.com/angular/angular.js/blob/master/CONTRIBUTING.md#question. This repository's issues are reserved for feature requests and bug reports.
Do you want to request a feature or report a bug?
Bug
What is the current behavior?
Using ng-model in a select-2 takes the value from the contents of the option (the displayed text in the dropdown), instead of the ng-value, when the contents contain more than one Angular expression. When it's just one Angular expression this does not happen, as expected.
If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem via https://plnkr.co or similar (template: http://plnkr.co/edit/tpl:yBpEi4).
Here is my example:
<select ui-select2="{dropdownAutoWidth: true}"
ng-change="copyFromTaskDefinition(formBuilder.taskDefinitionNameToCopy)"
ng-model="formBuilder.taskDefinitionNameToCopy">
<option value=""></option>
<option
ng-repeat="otherTask in otherTaskDefinitions | orderBy:'taskDefinitionName'"
ng-value="otherTask.taskDefinitionName">
{{ otherTask.taskDefinitionName }}
{{ otherTask.isDraft && '(draft)' || '' }}
</option>
</select>
What is the expected behavior?
The expected behavior is that ng-model is populated with "otherTask.taskDefinitionName" from ng-value. But instead, it is populated with
{{ otherTask.taskDefinitionName }}
{{ otherTask.isDraft && '(draft)' || '' }}
whitespace and all.
What is the motivation / use case for changing the behavior?
This leads to bugs in consumer code because the ng-model is expected to be populated with the ng-value instead of the displayed text
Which versions of Angular, and which browser / OS are affected by this issue? Did this work in previous versions of Angular? Please also test with the latest stable and snapshot (https://code.angularjs.org/snapshot/) versions.
Other information (e.g. stacktraces, related issues, suggestions how to fix)