首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Vue无法从Fuse.js返回任何结果

使用Vue无法从Fuse.js返回任何结果
EN

Stack Overflow用户
提问于 2018-04-08 00:28:03
回答 1查看 710关注 0票数 1

因此,我对Vue还是个新手,我正在尝试用Fuse.js实现客户列表搜索。我确实得到了客户数组,并将其分配给了customer_search。我的键被正确地填充了,唯一的问题是结果没有返回任何东西。我想知道我是否需要以不同的方式构造我的客户数组,或者我是否完全遗漏了其他东西?

任何帮助都将不胜感激。

下面是我的代码:

代码语言:javascript
复制
<template>  
<div>
    <div class="container">
        <h1>Search</h1>
        <input type="text" class="input-search" value="" v-model="query">
        <p v-html="results"></p>
        <p v-for="info in data" >{{info}}</p>
    </div>
</div>

</template>    

<script>
import Fuse from 'fuse.js'
import $ from 'jquery'
import PageService from '../../common/services/PageService'

const Search = {

    data(){
        return {
            data: {},
            fuse: {},
            results: {},
            query: '',
            options: {
                keys: [
                    'id',
                    'name',
                    'company',
                ],
                minMatchCharLength: 3,
                shouldSort: true,
                threshold: 0.5
            },
        }
    },
    methods:{
        runQuery(query){
            if(query.length >= 3)
                this.results = this.fuse.search(query)
        },
    },
    computed:{
        customers: function(){
            return this.data
        },
        customer_search: function(){
            return Object.values(this.data)
        },
    },
    watch: {
        query: function(){
            this.runQuery(this.query)

        }
    },
    created(){
        this.fuse = new Fuse(this.customer_search, this.options)
        if(this.$store.state.search != ''){
            this.query = this.$store.state.search
        }
        PageService.getSearchObject().then((response)=>{
            this.data = response.data
        }).catch((err)=>{
            console.log('Error')
        });
    },
}
export default Search
</script>
EN

回答 1

Stack Overflow用户

发布于 2018-04-08 15:13:17

我认为runQuery方法是在创建this.fuse之前创建的,所以runQuery方法中的this.fuse不是最新的。

也许可以试试:

代码语言:javascript
复制
methods:{
        runQuery(query){
            if(query.length >= 3)
                this.results = new Fuse(this.customer_search, this.options).search(query)
        },
    },
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49709507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档