У меня есть форма, которая используется для редактирования объекта, и я не могу выбрать значение в избранном поле.
У меня есть массив json, который представляет, чтобы быть отредактированным и быть похожим на это:
$scope.item = [{
"objectID": "76",
"versionID": "0",
"versionName": "CURRENT",
"objectName": "xyz",
}]
теперь я одновременно заполняю избранное поле от другого массива json, который похож на это:
$scope.versions = [{
"id": "0",
"description": "CURRENT",
"name": "CURRENT"
},
{
"id": "114",
"description": "description of Version 2",
"name": "version2"
},
{
"id": "126",
"description": "description of Version 3",
"name": "version3"
},
{
"id": "149",
"description": "description of Version 4",
"name": "version4"
}]
в моей веб-странице я создаю избранное поле следующим образом:
Version:
избранное поле заполняет для меня, но оно должно выбирать значение, которое соответствует версии в item
. Я попробовал обоих versionID
и versionName
, Я даже попытался установить ng-selected="0"
и это даже не работает.
Я посмотрел здесь на Так, сайт Angularjs и погуглил и прошел бесчисленные учебные руководства, но все еще имеющие проблемы с этим. Я просто, может казаться, не вижу то, что проблемой является так любая Справка, значительно ценившая
Добавленный JsFiddle здесь
Вы можете простое использование ng-init как это
<select ng-init="somethingHere = options[0]" ng-model="somethingHere" ng-options="option.name for option in options"></select>
Это не устанавливает значение по умолчанию, потому что Ваша модель не связывается с идентификатором или свойствами имени, это связывается с каждым version
объект. Попытайтесь установить versionID
на один из объектов, и он должен работать, т.е. $scope.item.versionID = $scope.versions[2];
, Если Вы хотите установить идентификационным свойством затем, необходимо добавить select as
синтаксис:
ng-options="version.id as version.name for version in versions"
Можно просто добавить
track by version.id
к ng-опциям.
После поиска и попытки нескольких не рабочие опции получить мою избранную работу опции по умолчанию. Я нахожу чистое решение в: http://www.undefinednull.com/2014/08/11/a-brief-walk-through-of-the-ng-options-in-angularjs/
<select class="ajg-stereo-fader-input-name ajg-select-left" ng-options="option.name for option in selectOptions" ng-model="inputLeft"></select>
<select class="ajg-stereo-fader-input-name ajg-select-right" ng-options="option.name for option in selectOptions" ng-model="inputRight"></select>
scope.inputLeft = scope.selectOptions[0];
scope.inputRight = scope.selectOptions[1];
<select ng-model="selectedCar" ><option ng-repeat="car in cars " value="{{car.model}}">{{car.model}}</option></select>
<script>var app = angular.module('myApp', []);app.controller('myCtrl', function($scope) { $scope.cars = [{model : "Ford Mustang", color : "red"}, {model : "Fiat 500", color : "white"},{model : "Volvo XC90", color : "black"}];
$scope.selectedCar=$scope.cars[0].model ;});
Согласно документам выбор , следующая часть кода работала на меня.
<div ng-controller="ExampleController">
<form name="myForm">
<label for="mySelect">Make a choice:</label>
<select name="mySelect" id="mySelect"
ng-options="option.name for option in data.availableOptions track by option.id"
ng-model="data.selectedOption"></select>
</form>
<hr>
<tt>option = {{data.selectedOption}}</tt><br/>
</div>
если Вы даже не хотите инициализировать ng-модель к статическому значению, и каждым значением является управляемый DB, это может быть сделано следующим образом. Угловой сравнивает оцененное значение и заполняет выпадающее.
Ниже modelData.unitId получен от DB и сравнивается со списком идентификатора единицы, который является отдельным списком от дб -
<select id="uomList" ng-init="modelData.unitId"
ng-model="modelData.unitId" ng-options="unitOfMeasurement.id as unitOfMeasurement.unitName for unitOfMeasurement in unitOfMeasurements">