Я использовал 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
ng-repeat="data in enroldata | filter: searchText"
доступны только изнутри ng-repeat. Я думаю, вы можете просто вызвать enroll() при щелчке (ng-click="enrol()"
) и получить данные внутри контроллер из $scope.enrolData
ng-click="enrol()"
вне списка данных. Затем вы можете получить доступ к данным с контроллера. Например, если у выбранного элемента есть свойство selected = true
поэтому вы можете фильтровать элементы в $ scope.enrolData только с item.selected === true.