Polymer 过滤dom重复';s元素,其中值由函数生成
我知道如何过滤dom repeat的列表,但如果dom repeat的值是由函数生成的,那么这些值就不会出现在属性中。因此,在_computeFilter函数中,我不能使用任何子属性来匹配过滤器Polymer 过滤dom重复';s元素,其中值由函数生成,polymer,polymer-1.0,dom-repeat,Polymer,Polymer 1.0,Dom Repeat,我知道如何过滤dom repeat的列表,但如果dom repeat的值是由函数生成的,那么这些值就不会出现在属性中。因此,在_computeFilter函数中,我不能使用任何子属性来匹配过滤器 <template is="dom-repeat" items="{{membersList}}" as="usersList" filter="{{_computeFilter(searchUser)}}"> <div class="name"> [[_getFull
<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>
[[u getFullName(usersList.firstName,usersList.lastName)]]
[[u getMobileNumber(usersList.fields)]]
在上面的_getMobileNumber函数代码中,我传递了一个数组,然后在该数组中我将搜索一个手机号码,然后我将返回dom-repeat。现在我如何根据手机号码进行筛选,因为它是由函数返回的 我可以想出三种选择: 1) 修改memberList的元素,添加fullName和mobileNumber属性
this.memberList.forEach(userList => {
userList.fullName = this._getFullName(usersList.firstName,usersList.lastName);
userList.mobileNumber = this._getMobileNumber(usersList.fields);
}
this.newList = this.memberList.map(userList => {
return {
userList: userList,
fullName: this._getFullName(usersList.firstName,usersList.lastName),
mobileNumber: this._getMobileNumber(usersList.fields)
}
}
2) 创建一个包含新对象的新列表
a) 是旧对象的副本,具有新属性
this.memberList.forEach(userList => {
userList.fullName = this._getFullName(usersList.firstName,usersList.lastName);
userList.mobileNumber = this._getMobileNumber(usersList.fields);
}
this.newList = this.memberList.map(userList => {
return {
userList: userList,
fullName: this._getFullName(usersList.firstName,usersList.lastName),
mobileNumber: this._getMobileNumber(usersList.fields)
}
}
b) 是围绕旧对象以及新属性的包装器
this.memberList.forEach(userList => {
userList.fullName = this._getFullName(usersList.firstName,usersList.lastName);
userList.mobileNumber = this._getMobileNumber(usersList.fields);
}
this.newList = this.memberList.map(userList => {
return {
userList: userList,
fullName: this._getFullName(usersList.firstName,usersList.lastName),
mobileNumber: this._getMobileNumber(usersList.fields)
}
}
3) 只需在filter函数中使用方法_getMobileNumber
_computeFilter: function(item) {
return this._getMobileNumber(item.fields) == SOMETHING
}
我可以想出三个选择: 1) 修改memberList的元素,添加fullName和mobileNumber属性
this.memberList.forEach(userList => {
userList.fullName = this._getFullName(usersList.firstName,usersList.lastName);
userList.mobileNumber = this._getMobileNumber(usersList.fields);
}
this.newList = this.memberList.map(userList => {
return {
userList: userList,
fullName: this._getFullName(usersList.firstName,usersList.lastName),
mobileNumber: this._getMobileNumber(usersList.fields)
}
}
2) 创建一个包含新对象的新列表
a) 是旧对象的副本,具有新属性
this.memberList.forEach(userList => {
userList.fullName = this._getFullName(usersList.firstName,usersList.lastName);
userList.mobileNumber = this._getMobileNumber(usersList.fields);
}
this.newList = this.memberList.map(userList => {
return {
userList: userList,
fullName: this._getFullName(usersList.firstName,usersList.lastName),
mobileNumber: this._getMobileNumber(usersList.fields)
}
}
b) 是围绕旧对象以及新属性的包装器
this.memberList.forEach(userList => {
userList.fullName = this._getFullName(usersList.firstName,usersList.lastName);
userList.mobileNumber = this._getMobileNumber(usersList.fields);
}
this.newList = this.memberList.map(userList => {
return {
userList: userList,
fullName: this._getFullName(usersList.firstName,usersList.lastName),
mobileNumber: this._getMobileNumber(usersList.fields)
}
}
3) 只需在filter函数中使用方法_getMobileNumber
_computeFilter: function(item) {
return this._getMobileNumber(item.fields) == SOMETHING
}