我有一個簡單的NG-重複這樣的:如何使用角度濾波的對象的多個屬性
<input type="text" ng-model="vm.filter">
<div ng-repeat="tenant in vm.tenants | filter : vm.filter : vm.contains">
</div>
現在我想根據過濾,例如價值篩選租戶找到,如果租戶的名稱中包含的過濾器表達式像
function contains(actual, expected) {
return actual.name.indexOf(expected) >= 0;
}
我不明白的是爲什麼我得到一個tenant.name
中包含的功能,而不是tenant
本身。我知道一個簡單的例子,我可以做類似filter | {name: vm.filter} | vm.contains
的事情,但是如果我想根據多個屬性進行過濾(例如姓名,電話等)
是的,我通過調試發現它正在做深入的比較。有沒有辦法不這樣做?我想在基於對象本身提供的函數中使用我的自定義邏輯,但由於某種原因似乎不可能 –
您可以將過濾函數作爲第一個參數來過濾並直接使用範圍內的vm.filter,或者像https://jsfiddle.net/u9rq7afk/(鍵入'abc'來獲得2個匹配的租戶) – potatopeelings
是的,謝謝,似乎有伎倆,我錯過了表達式參數可以接受函數本身。 –