2017-01-23 83 views
2

我正在嘗試使用輸入字段中的搜索詞過濾對象數組。 我知道有一種方法可以使用此代碼ng-repeat="item in list| filter:search_term將搜索詞應用於ng-repeat指令。但是我需要在應用程序的JavaScript部分處理已過濾的列表。有沒有辦法如何訪問應用程序的JS部分中的過濾列表,或者我必須選擇另一種方法來通過搜索項來過濾我的數組?在JavaScript中帶有搜索詞的AngularJS過濾器對象數組

Here是我的(當前不工作)示例代碼。

編輯:
I'm尋找一種方式完全做任務,而不使用在我ng-repeat過濾器!最後,應該可以僅使用簡單的方式來顯示已過濾列表ng-repeat="item in filtered_list

+0

您可以將對象從AngularJS傳遞給Javascript,方法是將其添加到窗口中。 *例如:* window.sorted = vm.sortedData; –

回答

1

,你可以在你的控制器使用的過濾器也。這是你更新的小提琴。我希望這可以幫助。

`https://jsfiddle.net/ymcfugzp/3/` 
+0

謝謝!我搜索了這種解決方案,處理應用程序的JS部分中的過濾器! – JohnDizzle

0

然後您應該在Component之內對其進行過濾。

你可以有過濾功能,並且還做你的其他處理的東西,如下面的一個類似:

myFilter(term) { 
    const filtered = list.filter(element => element.term === term); 
    // Do other stuff in here. 
    return filtered; 
} 

然後你的模板可能是那樣簡單:

ng-repeat="myFilter(term)" 
+0

你能否給我提供一點工作代碼的例子? – JohnDizzle

0

你可以這樣做:ng-repeat="item in filteredList = (list| filter:search_term)。 然後通過$scope.filteredList獲取您的filteredList

或者使用控制器的別名是這樣的: ng-repeat="item in $ctrl.filteredList = ($ctrl.list| filter:search_term) - 爲了不將數據保存在$scope