Итак, у меня есть проект, в котором я должен отобразить некоторые данные из таблицы.Теперь я хочу изменить размер данных на основе поля над таблицей, которое на самом деле является полем ввода выбора и отправляет значение в угловой контроллер.Теперь это работает отлично, за исключением того факта, что поле не показывает выбранное количество данных, отображаемых на поле. Это пустое поле .но данные вставлены правильно.Также при отладке я нашел другую опцию здесь для поля, которого нет в HTML-коде.Вот мой код для HTML и контроллера.
Просмотр:
<li class="manual-dropdown pull-right">
<select id="ddPageSize" ng-model="PaginationInfo.pageSizeSelected" ng-change="ChangePageSize()" aria-controls="DepartmentTable" class="form-control pull-right">
<option value="5">5</option>
<option value="10">10</option>
<option value="25">25</option>
<option value="50">50</option>
<option value="-1">All</option>
</select>
</li>
Контроллер:
$scope.PaginationInfo = {
maxSize: 5, // Limit number for pagination display number.
totalCount: 0, // Total number of items in all pages. initialize as a zero
pageIndex: 1, // Current page number. First page is 1.
pageSizeSelected: 5, // Maximum number of items per page.
}
GetData(searched);
function GetData(searched) {
//debugger
//var noOfPages = 1;
var SearchData = $scope.StatusSearch.Search;
if (SearchData == "") {
searched = false;
}
var Displaysize = $scope.PaginationInfo.pageSizeSelected;
var index = $scope.PaginationInfo.pageIndex;
if (searched == false) {
Get("/User/GetData?Size=" + Displaysize + "&index=" + index, false).then(function (d) {
//$("#").val()
//$scope.userAccount.CountryID = $("#ddCountryOptions").val();
// $scope.PaginationInfo.maxSize = d.info.maxSize;
$scope.PaginationInfo.totalCount = d.totalSize;
$scope.PaginationInfo.pageIndex = d.index;
$scope.PaginationInfo.pageSizeSelected = d.size;
//$scope.noOfPages = $scope.PaginationInfo.totalCount / $scope.PaginationInfo.pageSizeSelected;
$scope.accountlist = d.GetList;
$scope.$apply();
})
}
else {
// alert($scope.SearchData.Search);
Get("/User/SearchData?inputstring="+ SearchData, false).then(function (d) {
$scope.accountlist = d.GetList;
$scope.PaginationInfo.pageIndex = index;
$scope.PaginationInfo.pageSizeSelected = Displaysize;
$scope.PaginationInfo.totalCount = d.totalSize;
$scope.$apply();
});
}
}
объяснение для контроллера : данные загружаются при загрузке страницы, поэтому функция GetData () вызывается немедленно.размер страницы по умолчанию установлен на 5, как показано, и когда я изменяю поле, я вспоминаю функцию GetData () с размером страницы в качестве аргумента, а серверная часть делает все остальное и возвращает количество данных, которое я запросил.Кроме того, причина того, что в этой функции есть 2 вызова ajax, заключается в реализации функции поиска.который проверяет, является ли поле ввода пустым или имеет значение и на основе этого выводит данные.
Что я хочу знать, так это почему поле размера страницы в моем раскрывающемся списке пусто, когда я выбираю значение.
Редактировать: После нескольких дополнительных исследований я обнаружил, что ng-Model создает пустую опцию со значением выбранной опции.Теперь проблема все еще остается, я не знаю, как отобразить значение в пустом объекте.если я выберу другую опцию в качестве выбранной, моё значение ng-модели не изменится.Так что я все еще застрял с этим.Кроме того, я уже дал ng-модели значение по умолчанию 5, такое же, как в первом раскрывающемся списке.поэтому, если я отмечу любую другую опцию как выбранную, опция ng-model останется 5 независимо от того, сколько раз я изменю значение раскрывающегося списка.