Angularjs 1.5.5
У меня есть простой Select
который отлично работает:
<select ng-model="selectedPart">
<option ng-repeat="optionPart in parts" value="{{optionPart.Id}}">{{optionPart.Title}}</option>
</select>
Когда я устанавливаю id как строку, Select
делает это правильно:
$scope.selectedPart = "1";
Когда я устанавливаю его в Int из объекта, никаких изменений не происходит.
$scope.selectedPart = $scope.parts[0].Id;
Почему Int
не обновляет Select
но string
делает, и как я могу заставить его работать?
Попробуй так вот
<select ng-model="selectedPartId"
ng-options="part.Id as part.Title for part in parts">
</select>
Обратите внимание, что я изменил модель, чтобы отразить, что вы выбор id
, а не в parts
записи.
Если вы хотите связать объект, попробуйте это
<select ng-model="selectedPart"
ng-options="part.Title for part in parts track by part.Id">
</select>
Затем вы можете назначить его через $scope.selectedPart = $scope.parts[0];
Есть два способа, которыми вы можете это сделать:
1. $scope.parts = [{
id: 2,
Title: 'XX'
}, {
id: 5,
Title: 'XXXX'
}, {
id: 8,
Title: 'XXVVV'
}];
$scope.selectedPart = $scope.parts[1];
<select ng-options="part as part.Title for part in parts track by part.id" ng-model="selectedPart"></select>
2. $scope.parts = [{
id: 2,
Title: 'XX'
}, {
id: 5,
Title: 'XXXX'
}, {
id: 8,
Title: 'XXVVV'
}];
$scope.selectedPart = $scope.parts[1].id;
<select ng-options="part.id as part.Title for part in parts" ng-model="selectedPart"></select>