waw*_*los 1 javascript filter vue.js vuejs2
在我的页面中,我有一个由存储在组件中的局部变量构建的元素列表。我添加了一个用于搜索的输入文本,以便能够过滤和仅显示名称包含用户搜索的字符串的元素。
使用以下代码,我从未在我的列表中看到任何刷新。我的错误在哪里?
模板
<input v-model="searchTextValue" v-on:keyup="onSearch" type="text" />
<div v-for="car in localCars" :key="car.id">
<span>{{ car.name }}</span>
</div>
Run Code Online (Sandbox Code Playgroud)
JS
export default {
data() {
return {
localCars: [{name: "audi"}, {name:"fiat"}],
searchTextValue : ""
};
},
methods: {
onSearch() {
this.localCars.filter(function (car) {
return car.name.indexOf(this.searchTextValue) !== -1;
});
},
}
}
Run Code Online (Sandbox Code Playgroud)
您的代码应如下所示:-
演示在这里
<template>
<div>
<input v-model="searchTerm" type="text">
<div></div>
<div v-for="car in filterByTerm" :key="car.id">
<span>{{ car.name }}</span>
</div>
</div>
</template>
<script>
export default {
name: "filter-demo",
data() {
return {
localCars: [{ name: "audi" }, { name: "fiat" }],
searchTerm: ""
};
},
computed: {
filterByTerm() {
return this.localCars.filter(car => {
return car.name.toLowerCase().includes(this.searchTerm);
});
}
},
methods: {}
};
</script>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4393 次 |
| 最近记录: |