Staram się, aby pole wyboru zaczęło się od wstępnie wypełnionej opcji przy użyciu ng-repeat z AngularJS 1.1.5. Zamiast tego wybór zawsze zaczyna się od niczego nie zaznaczonego. Ma również pustą opcję, której nie chcę. Myślę, że jest efekt uboczny braku wyboru.
Mogę to uruchomić, używając opcji ng-options zamiast ng-repeat, ale w tym przypadku chcę użyć ng-repeat. Chociaż mój zawężony przykład tego nie pokazuje, chcę również ustawić atrybut tytułu każdej opcji i nie ma sposobu, aby to zrobić za pomocą ng-options, o ile wiem.
Nie sądzę, że jest to związane z powszechnym problemem dziedziczenia zakresu / prototypów w AngularJs. Przynajmniej nie widzę niczego oczywistego podczas inspekcji w Batarangu. Ponadto po wybraniu opcji w menu wyboru za pomocą interfejsu użytkownika model aktualizuje się poprawnie.
Oto kod HTML:
<body ng-app ng-controller="AppCtrl">
<div>
Operator is: {{filterCondition.operator}}
</div>
<select ng-model="filterCondition.operator">
<option
ng-repeat="operator in operators"
value="{{operator.value}}"
>
{{operator.displayName}}
</option>
</select>
</body>
Oraz JavaScript:
function AppCtrl($scope) {
$scope.filterCondition={
operator: 'eq'
}
$scope.operators = [
{value: 'eq', displayName: 'equals'},
{value: 'neq', displayName: 'not equal'}
]
}
JS Fiddle do tego: http://jsfiddle.net/coverbeck/FxM3B/2/