Как динамически прикрепить id к ng-модели

0
<select class="form-control" select-multiple-picker multiple data-max-options="2" ng-model="userDetails.ClinicalRoles" name="createUserSelectClinicalRoles" id="createUserSelectClinicalRoles">
    <option ng-repeat="role in clinicalRole" value="{{role.Description}}">{{role.Description}}</option>
</select>

Здесь я получаю данные от сервера до списка, я показываю только {{role.Description}} для пользователя, но когда я отправляю, мне нужно установить role.id и role.Description в ng-Model для вызова API.

  • 0
    Вы хотите сказать, что вы выберете описание, но вам нужен идентификатор для этого конкретного описания, когда вы выберете?
  • 0
    да, этот идентификатор мне нужно прикрепить к ng-Model
Показать ещё 2 комментария
Теги:

3 ответа

0

Вы можете сохранить полный объект в ng-модели вместо одиночного.

HTML: -

<div data-ng-app="myApp" data-ng-controller="Ctrl" style="margin-top:40px">
        <div>
            <select class="form-control" id="Region" data-ng-model="selectedValue" data-ng-options="value.Desc for value  in values track by value.id">
                <option value=''>Select</option>
            </select>
        </div>
        <div>
            Selected Option Label : {{selectedValue.label}}<hr/>
            Selected Option Id : {{selectedValue.id}}<hr/>
            Selected Option Desc : {{selectedValue.Desc}}<hr />
        </div>
    </div>

Javascript: -

     <script type="text/javascript">

           var IsApp = angular.module('myApp', []);

            IsApp.controller('Ctrl', function ($scope, $http) {
                $scope.values = [{
                    id: 1,
                    label: 'aLabel',
                    Desc: 'Desc-aLabel'
                }, {
                    id: 2,
                    label: 'bLabel',
                    Desc: 'Desc-bLabel'
                }];
            });// End of controller
        </script>

При отправке вы можете передать selectedValue.id и selectedValue.Desc.

0

Не используйте для этого ng-repeat. Вместо этого используйте ng-options.

Попробуйте this-

<select class="form-control" select-multiple-picker multiple data-max-options="2" ng-model="userDetails.ClinicalRoles" name="createUserSelectClinicalRoles" id="createUserSelectClinicalRoles"
ng-options="role.id as role.Description for role in clinicalRole">                
</select>

Если вы хотите выбрать оба одновременно. Тогда вы можете использовать трюк. Добавьте атрибут ng-change в select и передайте выбранный role.id, поскольку он является моделью в функции.

HTML

<select class="form-control" select-multiple-picker multiple data-max-options="2" ng-model="userDetails.ClinicalRoles" name="createUserSelectClinicalRoles" id="createUserSelectClinicalRoles"
ng-options="role.id as role.Description for role in clinicalRole" 
ng-change="setDescription(role)">                
</select>

JS

$scope.lastSelectedDesc = {};
$scope.setDescription(role){
   $scope.lastSelectedDesc = role;
}

Просто сделайте это.

0

Вы можете сделать это с помощью ng-options и выбрать как: https://docs.angularjs.org/api/ng/directive/ngOptions

Ещё вопросы

Сообщество Overcoder
Наверх
Меню