Javascript 搜索v-data-table以在<;td>';s也是数据数组
我想使用Javascript 搜索v-data-table以在<;td>';s也是数据数组,javascript,vue.js,vuetify.js,Javascript,Vue.js,Vuetify.js,我想使用v-text-field允许用户在为v-data-table的不同行键入结果时过滤结果。不过v-data-table的也是数组,这使得v-data-table的内置搜索功能无法工作。我正在尝试创建一个客户筛选器或某种类型的项键,以帮助正常的搜索筛选器对中的嵌套数据正常工作。使用“vuetify”:“^1.5.16”、和“vue”:“^2.6.10” {{pos.systemCode.code | nullCheck} {{numberOfPlace.numberOfPlace | n
v-text-field
允许用户在为v-data-table
的不同行键入结果时过滤结果。不过v-data-table
的
也是数组,这使得v-data-table
的内置搜索功能无法工作。我正在尝试创建一个客户筛选器或某种类型的项键,以帮助正常的搜索筛选器对
中的嵌套数据正常工作。使用“vuetify”:“^1.5.16”、
和“vue”:“^2.6.10”
{{pos.systemCode.code | nullCheck}
{{numberOfPlace.numberOfPlace | nullCheck}
{{firstName.customerName.firstName | nullCheck}
{{lastName.customerName.lastName | nullCheck}
{{dob.dob | nullCheck}
{{getCustContacts(customerContactsPhone.customerContactsPhone,“电话”)| nullCheck}
{{getCustContacts(customerContactsMail.customerContactsMail,'email')| nullCheck}
所以您只是想根据行中的任何
与您的筛选查询匹配的时间来查找表行(
)?是的,基本上是这样,但我需要能够搜索
中的多个数据点,因为可以有多个客户使用相同的id,但具有不同的其他信息,我需要能够在
中检查组内的每个客户。看起来您需要使用JS的Array.prototype.filter函数为此编写一个更复杂的过滤函数。这就是你需要帮助的具体内容吗?第二:你可以把它写成一个计算函数,这样你的列表在每次按键时都会立即更新(然后你的v-for会循环计算版本而不是原始数据),但是由于这个例子的复杂性和长度,我不知道这是否会非常有效。(我个人只需要添加一个按钮,或者对最大更新间隔设置一个上限,或者别的什么)而且,这些数据看起来好像来自API响应?如果这是正确的,如果API提供了内置的过滤功能(在请求时),您可以考虑完全回避这里的复杂性。它不会是实时的,但会起作用。你能解释一下为什么这是你问题的答案吗?虽然发布解决问题的代码很好,但为未来用户提供解释是很有帮助的。
handleFilterCustomerTable(searchInput) {
this.filteredCustomerTable = this.originalCustomerTable.filter(cust => {
let rowText = '';
cust.forEach(c => {
rowText += this.createSearchText(
c.pos,
c.centerNumber,
this.formatSSN(c.ssn),
c.firstName,
c.lastName,
c.dob,
c.phone,
c.email,
c.custId
);
});
return rowText.toLocaleLowerCase().indexOf(searchInput.toLocaleLowerCase()) >= 0;
});
},
createSearchText(...inputs) {
return inputs.join('\0'); // '\0' is the literal null character
},