Заявление Биджая Рай является правильным, но не полным ответом.
ngOption
имеет довольно сложные выражения, и вы должны изучить документацию . Если вы измените способ отслеживания объекта опции, вы можете избежать использования same object
по ссылке, как указано. Например, используйте шаблон select as
<select ng-model="selected2" ng-options="v.id as v.name for v in prop.values">
</select>
. Затем вы можете просто назначить выбранное следующим образом:
$scope.selected2 = 3;
Обновлено plunkr
$scope.prop = {
"type": "select",
"name": "Service",
"values": [{
'name': "Service 1"
}, {
'name': "Service 2"
}, {
'name': "Service 3"
}, {
'name': "Service 4"
}]
};
ng-options получает данные из prop.values .... так что selected1 работает, потому что он предопределен как $ scope.prop.values [1]
, тогда как selected2 не относится к данным внутри prop.values ... ..