2016-12-24 47 views
1

我知道如何過濾dom-repeat的列表,但是如果dom-repeat的值由函數生成,那麼這些值不會出現在_computeFilter函數I的properties.so中不能使用任何子屬性來匹配過濾器。過濾dom-repeat的元素,其中的值由函數生成

<template is="dom-repeat" items="{{membersList}}" as="usersList" filter="{{_computeFilter(searchUser)}}"> 
<div class="name"> 
    [[_getFullName(usersList.firstName,usersList.lastName)]] 
</div> 
<div> 
    [[_getMobileNumber(usersList.fields)]]</div> 
</template> 

在_getMobileNumber功能上面的代碼,我傳遞一個數組,然後在數組,我會尋找一個手機號碼,然後我將我如何能過濾器的基礎返回到dom-repeat.Now在手機號碼,因爲它返回的功能!

回答

0

我能想到的三個選項:

1)變異會員的元素,添加全名和移動電話號碼的屬性

this.memberList.forEach(userList => { 
    userList.fullName = this._getFullName(usersList.firstName,usersList.lastName); 
    userList.mobileNumber = this._getMobileNumber(usersList.fields); 
} 

2)創建一個新的列表,用新的對象,無論是

a)舊對象的副本,具有新屬性

b)舊對象周圍的包裝,以及新屬性

this.newList = this.memberList.map(userList => { 
    return { 
    userList: userList, 
    fullName: this._getFullName(usersList.firstName,usersList.lastName), 
    mobileNumber: this._getMobileNumber(usersList.fields) 
    } 
} 

3)只需使用方法_getMobileNumber濾波器函數內部

_computeFilter: function(item) { 
    return this._getMobileNumber(item.fields) == SOMETHING 
}