vue.js - 如何在watch vuejs中调用方法函数
问题描述
我写这样的代码:
<select class="section" @change="showIndex($event.target.selectedIndex)">
<option v-for="number in 50">{{ number}} per page</option>
</select>
<div class="product__layout" v-for="product in showItem">
<p class="product__name">{{ product.name }}</p>
...
data() {
return {
products:[
{ name: 'abc' },
{ name: 'xyz' },
],
}
},
methods:{
showIndex(selectedItem){
return selectedItem
}
},
computed:{
showItem(){
return this.products.slice(0, this.showItem)
}
}
我的代码没有结果。有人可以帮我做错什么吗?
解决方案
您似乎想products
根据组合框中的数字显示一个子集。
如评论中所述,最好通过计算属性完成
new Vue({
el: "#app",
data: () => ({
products:[
{ name: 'abc' },
{ name: 'xyz' },
],
productCount: 1
}),
computed: {
showProducts: ({ products, productCount }) => products.slice(0, productCount)
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.min.js"></script>
<div id="app">
<p>
Count:
<!-- use v-model to capture the selection -->
<select v-model="productCount" class="section">
<option v-for="number in 50" :value="number">{{ number }} per page</option>
</select>
</p>
<!-- use the computed property here -->
<div v-for="product in showProducts" class="product__layout" :key="product.name">
<p class="product__name">{{ product.name }}</p>
</div>
</div>
推荐阅读
- snakemake - 动态作业未执行,管道停止在 50%
- c++ - C ++将私有纯虚拟方法覆盖为公共
- react-native - 本地 JSON 与外部文件
- slack - 将 slack webhook 与节点一起使用
- angularjs - 如何在angularjs中使用alasql包装文本内容
- doxygen - 将 Doyxgen xml 输出转换为 DITA
- jquery - jQuery UI 调整大小,同时保持相同的整体宽度
- regex - 使用 RegEx 将大写转换为 title()
- actions-on-google - 我可以阻止参数被截断吗?
- javascript - 使用 Angularjs 在动态列表项中添加事件 stopPropagation