2013-05-23 27 views
28

Kể từ ngày im cố gắng để chạy: Với đoạn mã sau tôi muốn lọc một số người và sau khi onchange được kích hoạt, hãy nhận các đối tượng đã được lọc. xem Mã này sống ở đây: http://jsbin.com/isojof/1/

Bất kỳ ý tưởng nào?

Có noch $ filter Object chưa ... nhưng cách tạo một đối tượng? $ filter ('filter') rõ ràng là không hoạt động!

<html ng-app> 
<head> 
    <meta charset="UTF-8"> 
    <title>Document</title> 
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.1/angular.min.js"></script> 

</head> 


<body ng-controller="List"> 

    Search: <input ng-change="getData(names, query)" ng-model="query"> 
    Search: <select ng-change="getData(names, query2)" ng-model="query2"> 
    <option></option> 
    <option>Berlin</option> 
    <option>Hamburg</option> 
</select> 
<div> 
    <ul class="names" > 
     <li ng-model="item" " ng-repeat="name in names | filter:query | filter:query2"> 
      {{name.firstname}}, {{name.lastname}}, {{name.age}}, {{name.location}} 
     </li> 
    </ul> 
</div> 
    <script type="text/javascript"> 
    function List($scope) { 
     $scope.names = [ 
     {"firstname": "Carl", 
     "lastname": "Luyk", 
     "age": 20, 
     "location":"Berlin"}, 
     {"firstname": "Carl", 
     "lastname": "Moreen", 
     "age": 20, 
     "location":"Hamburg"}, 
     {"firstname": "Tom", 
     "lastname": "Luyk", 
     "age": 25, 
     "location":"New York"}, 
     {"firstname": "Caren", 
     "lastname": "Tilt", 
     "age": 20, 
    "location":"Paris"}, 
     {"firstname": "Caren", 
     "lastname": "Orail", 
     "age": 30, 
     "location":"Hamburg"}, 
     ]; 
$scope.getData = function (names, query) { 
    $scope.queryData = $filter('filter')(names, query); 
    console.log($scope.queryData); 
}; 



    } 
    </script> 

</body> 
</html> 
+2

Tiêm các serv lọc băng trong bộ điều khiển của bạn: 'Danh sách hàm ($ scope, $ filter) {' – Martin

+0

Nó cũng có thể là do mảng mà bộ lọc hoạt động không xác định, được thử nghiệm với góc 1.5.6. – Mantisse

Trả lời

83

Bạn chỉ cần tiêm $filter vào điều khiển của bạn:

Thay đổi

function List($scope) { 

để

function List($scope, $filter) { 

http://jsbin.com/isojof/2/

Các vấn đề liên quan