Tôi đang cố gắng để có được hộp chọn để bắt đầu với một tùy chọn điền sẵn bằng cách sử dụng ng-lặp lại với AngularJS 1.1.5. Thay vào đó, lựa chọn luôn bắt đầu với không có gì được chọn. Nó cũng có một tùy chọn trống, mà tôi không muốn. Tôi nghĩ rằng có một tác dụng phụ không có gì được chọn.Khởi tạo lựa chọn với AngularJS và ng-repeat
Tôi có thể làm việc này bằng cách sử dụng ng-tùy chọn thay vì ng-lặp lại, nhưng tôi muốn sử dụng ng-lặp lại cho trường hợp này. Mặc dù ví dụ thu hẹp của tôi không hiển thị nó, tôi cũng muốn đặt thuộc tính tiêu đề của từng tùy chọn và không có cách nào để thực hiện điều đó bằng cách sử dụng tùy chọn ng, theo như tôi biết.
Tôi không nghĩ rằng điều này liên quan đến vấn đề thừa kế phạm vi/nguyên mẫu chung của AngularJs. Ít nhất tôi không thấy điều gì rõ ràng khi kiểm tra ở Batarang. Ngoài ra, khi bạn chọn một tùy chọn trong lựa chọn với giao diện người dùng, mô hình sẽ cập nhật chính xác.
Đây là 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>
Và JavaScript:
function AppCtrl($scope) {
$scope.filterCondition={
operator: 'eq'
}
$scope.operators = [
{value: 'eq', displayName: 'equals'},
{value: 'neq', displayName: 'not equal'}
]
}
JS Fiddle cho việc này: http://jsfiddle.net/coverbeck/FxM3B/2/
ngOption đã được tạo ra bởi vì không có cách nào sạch để làm điều này với ngRepeat. ngRepeat unrolls sau khi tùy chọn đã được chọn. Bạn đã thử thiết lập ngSelect trên các tùy chọn của bạn – TheSharpieOne
Có! Các ngSelected làm việc! Tôi sẽ đăng một cập nhật JsFiddle. –
Cần lưu ý rằng trong AngualrJS 1.2 mã này hoạt động khác nhau - Nó không tạo ra một phần tử rỗng mới