2016-03-04 48 views
0

我試圖在我的控制器中使用$filter來過濾特定的字段,該控制器位於$ watch函數內部,但我似乎無法理解官方文檔。

案例: 我有一個下拉列表我用作過濾器參數。我想過濾我的數組$scope.images中的特定字段。該字段被稱爲Vessel。當在下拉列表中選擇一個選項時,$watch函數應該過濾數組。

我現在有的代碼可以在所有字段上進行篩選,而不是在一個特定的字段上進行篩選。

角代碼:

$scope.$watch('search', function(val) 
{ 
    $scope.images = $filter('filter')($scope.items2, val); 
} 

查看

<div ng-app="masterApp" ng-controller="listCtrl"> 
<div class="container"> 
    <label for="singleSelect"> Select Vessel: </label><br> 

    <select name="singleSelect" ng-model="search"> 
     <option value="African Chaser">African Chaser</option> 
     <option value="African Sprinter">African Sprinter</option> 
    </select> 

    <h3 class="text-center">Time: {{images[slider.value].Created | date:'medium'}}</h3> 

    <img src="https://intra.monjasa.com/{{images[slider.value].File.ServerRelativeUrl}}" class="feed_image"> 

    <rzslider rz-slider-model="slider.value" rz-slider-options="slider.options"></rzslider> 
</div> 
</div> 

我曾嘗試:

$scope.$watch('search', function(val) 
{ 
    $scope.images = $filter('filter: Vessel')($scope.items2, val); 
} 

以上不活像ķ。

任何建議,我要去哪裏錯了?

+1

嘗試:$過濾器( '過濾器')($ scope.items2,纈氨酸, '船');.如果沒有嘗試將'Vessel'放在val – Walfrat

回答

0

試試這個 -

你的下拉附加NG更改事件 -

<select name="singleSelect" ng-model="search" ng-changed="filterItems()"> 
     <option value="African Chaser">African Chaser</option> 
     <option value="African Sprinter">African Sprinter</option> 
    </select> 

在控制器中定義一個函數filterItems這樣

$scope.filterItems = function(){ 
    // Filter code here 
    $scope.images = $filter('filter')($scope.items2,{"vessel" : $scope.search}); 
} 

容器是在物業$ scope.items2你想過濾。

希望它可以幫助你。

+0

之前謝謝,完美! – TietjeDK

+0

歡迎總是樂意幫忙@TietjeDK –

1

希望這會幫助你 -

$scope.images = $filter('filter')($scope.items2,{Vessel : $scope.search},true);