Как получить значение идентификатора выбранных опций в списке данных с помощью ng-repeat и fillter?

0

Я использовал datalist для поиска значения, которое я ввел в поле ввода и отфильтровал. Мне нужно отправить выбранные опции id в функцию контроллера.

<input list="browsers" type="text" id="searchtextbox" class="form-control" placeholder="Search" ng-model="searchText">
<datalist id="browsers">
       <option ng-repeat="data in enroldata | filter: searchText" id="{{data.USERID}}" id="{{data.USERID}}" value="{{data.FIRSTNAME}} {{data.LASTNAME}}">{{data.FIRSTNAME}} {{data.LASTNAME}}</option>
 </datalist>
  <input type="button" class="btn btn-primary btn-flat" ng-click="enrol({{data.USERID}})" value="Send" />

В контроллере

 $scope.enrol = function (USERID) {
        debugger;
        var value = $scope.USERID;
        var val = $('#searchtextbox').val();
        var states = $('#browsers');
        var endVal = $(states).find('option[value="' + val + '"]');
        //depending on your logic, if endVal is empty it means the value wasn't found in the datalist, you can take some action here
        return endVal.text();


        var USERID1 = $scope.searchText;
        //var value = $('#searchText').val();
        //alert($('#browsers [value="' + value + '"]').data('value'));
        //var x = $('#searchtextbox').val();
        //var z = $('#browsers');
        //var val = $(z).find('option[value="' + x + '"]');
        //var endval = val.attr('id');
        //alert(endval);
        debugger;
        var dat = {
            "courseid": localStorage.getItem("courseid")
        , "USERID": USERID
        }
}

мне нужно искать по имени пользователя и передавать USERID с помощью fucntion или с привязкой идентификатора.... Я попытался вызвать его по id и передал с функцией его возврат undefined

  • 0
    Это не угловой способ делать вещи. Я предлагаю вам сначала прочитать этот ответ .
  • 0
    Похоже, использование неправильного управления пользовательским интерфейсом. Что делать, если пользователь не выбирает из списка данных? Как уже упоминалось, у вас никогда не должно быть jQuery, подобного этому, в угловом контроллере.
Показать ещё 1 комментарий
Теги:
datalist
option

1 ответ

0
Лучший ответ

ng-repeat="data in enroldata | filter: searchText" доступны только изнутри ng-repeat. Я думаю, вы можете просто вызвать enroll() при щелчке (ng-click="enrol()") и получить данные внутри контроллер из $scope.enrolData

  • 0
    '<option ng-repeat = "data in enroldata | filter: searchText" ng-click = "adduser ({{data.USERID}})" id = "{{data.USERID}}" value = "{{data. FIRSTNAME}} {{data.LASTNAME}} "> {{data.FIRSTNAME}} {{data.LASTNAME}} </ option> 'я пробовал внутри тега option, но он не работал ... я также пытался изменить ng-change ...... если я попробую это внутри ввода, он будет работать, но я не могу передать USERID ..
  • 0
    Оставьте ваши варианты как есть. Создайте кнопку с помощью ng-click="enrol()" вне списка данных. Затем вы можете получить доступ к данным с контроллера. Например, если у выбранного элемента есть свойство selected = true поэтому вы можете фильтровать элементы в $ scope.enrolData только с item.selected === true.
Показать ещё 1 комментарий

Ещё вопросы

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