Próbuję uzyskać pole wyboru, aby rozpocząć od wstępnie wypełnionej opcji przy użyciu polecenia ng-repeat z AngularJS 1.1.5. Zamiast tego wybór zawsze zaczyna się od niczego wybranego. Ma również pustą opcję, której nie chcę. Myślę, że istnieje efekt uboczny, że nic nie zostało wybrane.Inicjowanie selekcji za pomocą AngularJS i powtórzenie ng
Mogę uzyskać to działające przy użyciu opcji ng zamiast ng-repeat, ale chcę użyć ng-repeat dla tego przypadku. Chociaż mój zwężony przykład tego nie pokazuje, ja również chcę ustawić atrybut title każdej opcji, i nie ma sposobu, aby to zrobić używając opcji ng, o ile wiem.
Nie sądzę, że jest to związane z typowym zagadnieniem AngularJs dotyczącym zakresu/prototypowego dziedziczenia. Przynajmniej nie widzę niczego oczywistego podczas inspekcji w Batarangu. Ponadto po wybraniu opcji w menu wyboru przy użyciu interfejsu użytkownika model aktualizuje się poprawnie.
Oto 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>
I JavaScript:
function AppCtrl($scope) {
$scope.filterCondition={
operator: 'eq'
}
$scope.operators = [
{value: 'eq', displayName: 'equals'},
{value: 'neq', displayName: 'not equal'}
]
}
JS Fiddle na to: http://jsfiddle.net/coverbeck/FxM3B/2/
ngOption został stworzony, ponieważ nie było czysty sposób to zrobić z ngRepeat. ngRepeat rozwija się po wybraniu opcji. Czy próbowałeś ustawić ngSelect na swoich opcjach? – TheSharpieOne
Tak! NgSelected działało! Opublikuję zaktualizowany działający JsFiddle. –
Należy zauważyć, że w AngualrJS 1.2 ten kod działa inaczej - nie tworzy nowego pustego elementu