Uruchamianie AngularJS 1.4.0-rc.1 wartość wewnątrz pętli ng-options
zawiera typ zmiennej.Jak tłumić typ zmiennej w atrybucie wartości za pomocą opcji-ng?
Zobacz następujący kod:
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.0-rc.1/angular.js">
</script>
<script>
angular.module("selectOptionsTest", []).
controller("SelectOptionsController", ["$scope", function($scope) {
$scope.options = [
{id: 1, label: "Item 1"},
{id: 2, label: "Item 2"},
{id: 3, label: "Item 3"}
];
}]);
</script>
<div ng-app="selectOptionsTest" ng-controller="SelectOptionsController">
<select ng-model="opt" ng-options="option.id as option.label for option in options">
</select>
</div>
To generuje kod HTML, który wygląda tak:
<select ng-options="option.id as option.label for option in options" ng-model="option" class="ng-pristine ng-valid ng-touched">
<option value="?" selected="selected"></option>
<option value="number:1" label="Item 1">Item 1</option>
<option value="number:2" label="Item 2">Item 2</option>
<option value="number:3" label="Item 3">Item 3</option>
</select>
Dlaczego wartość poprzedzona przez typ zmiennej, tj. number:
? W poprzednich wersjach AngularJS (np. Bieżący stabilny 1.3.15) atrybuty value
są wypełnione oczekiwanymi wartościami 1
, 2
i 3
.
Czy to błąd w wersji 1.4.0-rc.1, czy te przypadki muszą być teraz obsługiwane inaczej?
I'ts wymienione w łamaniu zmian dla ngOptions. https://github.com/angular/angular.js/commit/7fda214c4f65a6a06b25cf5d5aff013a364e9cef – Claies
Dziękujemy @Claies. To wyjaśnia, co dokładnie się zmieniło. –