У меня проблема с отображением предварительно выбранного значения в качестве выбранного параметра в моем элементе выбора. Здесь идет код
<select ng-model="data.company" ng-options="company as company.name for company in companies"></select>
$scope.companies =[{
id:1,
name:"Company 1"
},
{
id:2,
name:"Company 2"
}];
$scope.data = {
company:{
id:2,
name:"Company 2"
}
}
Проблема в том, что когда я вхожу в раздел, выбор дает мне пустую опцию, поскольку по умолчанию вместо меня отображается «Компания 2». Что я делаю не так?
3 ответа
Вам необходимо использовать {{ X0}} в этом случае, так как вы присваиваете значение объекта непосредственно ng-model
. В этом случае происходит следующее: когда вы связываете объект напрямую с треком data.company
(модель ng) по выражению, проверяет company.id в этом ng-model
с каждым идентификатором элемента companies
. Если какой-либо из них совпадает, предварительно выберите этот вход.
Разметка
<select ng-model="data.company"
ng-options="company as company.name for company in companies track by company.id">
</select>
Попробуйте вместо этого
<select ng-model="data.company" ng-options="company.name for company in companies"></select>
$scope.data = {
company: $scope.companies[1];
};
Вы хотите, чтобы значение, отображаемое в раскрывающемся списке, было названием компании, а сохраненный объект - компанией.
Вы можете попробовать использовать ng-init
<select ng-init="data.company= companies[0]"
ng-model="data.company"
ng-options="company as company.name for company in companies"></select>
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.