Может кто-нибудь сказать мне, почему выбран вариант модели в первом примере, а вторая не для простого массива:AngularJS 1,5 ngOptions Сравнение для Отображение массива Plain
// Plain old array
vm.owner = ['example', 'example2', 'example3', ...];
Где модель vm.model.address.owner = 2;
// EXAMPLE 1 - Works
// Force index to be a number: using id*1 instead of it being a string:
// and the option ('example3') is selected based on the model value of 2
// indicating the index
<select id="owner"
name="owner"
placeholder="Residential Status"
ng-model="vm.model.address.owner"
ng-required="true"
ng-options="id*1 as owner for (id, owner) in vm.owner">
<option value="">Select Value</option>
</select>
Попытка не использовать взломать и использовать дорожку вместо индекса 2 не выбрана, даже если значение все еще задано в модели.
// EXAMPLE 2 - Doesn't Work
// Markup doesn't show value to be a string: using track by, but the
// option set in the model doesn't cause the option to be selected it
// remains as the default with a value of ''
<select id="owner"
name="owner"
placeholder="Residential Status"
ng-model="vm.model.address.owner"
ng-required="true"
ng-options="owner for (id, owner) in vm.owner track by id">
<option value="">Select Value</option>
</select>
Я нахожу ngOptions быть супер запутанным поэтому любое объяснение или решение, например 2, так как она чище, а не рубить было бы здорово.