Я создал выбор в таблице, которая получает какой-то адрес электронной почты из списка. Вот код:
<td>
<select ng-init="selectedEmail = selectedEmail ? selectedEmail : emails[0]" class="form-control" ng-model="selectedEmail" ng-options="item as item.dest for item in emails"></select>
</td>
Я бы добавил дополнительную опцию, которая была бы индивидуальной для конечных пользователей. Если я добавлю <option>
в <select>
, он будет перезаписан Angular ng-options
<td>
<select ng-init="selectedEmail = selectedEmail ? selectedEmail : emails[0]" class="form-control" ng-model="selectedEmail" ng-options="item as item.dest for item in emails">
<option value="custom">Custom</option>
</select>
</td>
Как я могу добавить пользовательский параметр?
Моя цель состоит в том, чтобы добавить «пользовательский» выбор для пользователей: если они выбирают эту опцию, они могут записать свой собственный выбор, собственный текст.
3 ответа
Есть несколько способов решить эту проблему. Если вы хотите продолжить использовать ng-options
, вы можете использовать функцию.
HTML
<td>
<select
ng-init="selectedEmail = selectedEmail ? selectedEmail : emails[0]"
class="form-control"
ng-model="selectedEmail"
ng-options="item as item.dest for item in BuildList()"></select>
</td>
<input type="text" placeholder="Enter Custom Option" ng-model="customText" />
Функция контроллера для BuildList
$scope.BuildList = function() {
if(!$scope.customText) {
return $scope.emails;
}
var newList = angular.copy($scope.emails);
newList.push({someobjectbuildUsingCustom});
return newList ;
}
Вы можете сделать согласно ниже:
<div ng-controller="TestController">
{{sel}}
<select ng-model="sel" ng-options="d.value as d.label for d in data">
<option value="">any</option>
</select>
</div>
См. также эту скрипку
Вы можете использовать этот синтаксис:
<select>
<option ng-repeat="(key, value) in emails" value="{{key}}">{{value}}</option>
<option ... custom option ...>...</option>
</select>
Похожие вопросы
Связанные вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.