2015-07-21 4 views
0

Использование Углового У меня есть набор данных, который вызывается через $ http.get, фильтруется и затем отображается на странице. Эта ссылка будет сортировать данные по странам, есть ли способ, чтобы я мог реплицировать это, но используя список выбора вместо текстовых ссылок.Угловое событие изменения для выбранного меню

<a ng-click="sort_by('country');">Country</a> 

Часть моих app.js

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> 
+1

вы пробовали нг-изменение? – deostroll

+0

Я пробовал ng-change = 'sort_by (value)', но если честно, я не знаю, как передать значение. – Rob

ответ

0

Во-первых, вы должны привяжите выпадающее меню к значению, которое называется sortValue, из области измерения

<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); 
}); 
+0

Это прекрасно, спасибо! – Rob

Смежные вопросы