Использование Angular У меня есть набор данных, который вызывается через $ http.get, фильтруется и затем отображается на странице. Эта ссылка будет сортировать данные по странам, есть ли способ, чтобы я мог реплицировать это, но используя список выбора вместо текстовых ссылок.
<a ng-click="sort_by('country');">Country</a>
Часть моего приложения.
app.controller('customersCrtl', function ($scope, $http, $timeout) {
$http.get('ajax/getCustomers.php').success(function(data){
$scope.list = data;
$scope.currentPage = 1; //current page
$scope.entryLimit = 20 //max no of items to display in a page
$scope.filteredItems = $scope.list.length; //Initially for no filter
$scope.totalItems = $scope.list.length;
});
$scope.filter = function() {
$timeout(function() {
$scope.filteredItems = $scope.filtered.length;
}, 10);
};
$scope.sort_by = function(predicate) {
$scope.predicate = predicate;
$scope.reverse = !$scope.reverse;
};
});
Поэтому я хотел бы, чтобы это копировало сортировку на основе выбранного значения...
<select class="form-control">
<option value="firstname">First name</option>
<option value="lastname">Last name</option>
<option value="company">Company name</option>
</select>
Во-первых, вам нужно связать выпадающее sortValue
именем sortValue
из $ scope
<select ng-model="sortValue" class="form-control">
<option value="firstname">First name</option>
<option value="lastname">Last name</option>
<option value="company">Company name</option>
</select>
В контроллере установите часы для изменения фильтра при изменении sortValue
:
$scope.$watch('sortValue',function(newValue, oldValue){
//newValue here is the selected value
$scope.sort_by(newValue);
});