簡體   English   中英

為什么當我使用Vue.js時搜索不起作用?

[英]Why doesn't my search work when I use Vue.js?

我正在為Laravel 5應用程序創建一個簡單的搜索引擎。 因為它很小,所以我只在主表上使用FULLTEXT索引。 我正在嘗試使用Vue.js避免頁面重新加載。

在我的SearchController中,我簡單地擁有:

public function search(Request $request)
    {
        $search = $request->search;

        $results = Product::whereRaw("MATCH (product_name, product_description) AGAINST (? IN BOOLEAN MODE)", array($search))->get(array('product_name','slug'));

        return $results;
    }

使用Javascript:

getResults: function(e){
        e.preventDefault();
        this.$http.get('api/search', function(search){
            this.$set('searchResults', search);
        });
}

以及形式:

{!! Form::open(['v-on' => 'submit: getResults($event)', 'method' => 'get', 'action' => 'SearchController@search']) !!}
        <div class="form-group">
            {!! Form::label('search','Search:') !!}
            {!! Form::text('search', null, ['class' => 'form-control', 'v-model' => 'search']) !!}
        </div>

        <div class="form-group">
            {!! Form::submit('Submit', ['class' => 'form-control btn btn-primary']) !!}
        </div>

{!! Form::close() !!}

如果我從等式中刪除Vue.js,則會提交表單,並且會得到一個不錯的搜索結果JSON對象。 如果通過Vue.js進行輸入,則只會得到一個空對象。 在兩種情況下,我都使用相同的搜索詞。

我究竟做錯了什么?

編輯:我已經將search記錄到我的getResults函數中的控制台中,並且它為空,這在getResults解釋了事情。 但是為什么它是空的? 如果我在通過Vue的2向綁定輸入時回顯了數據搜索,那么search肯定不是空的...

這是因為您不使用vueJS發送任何內容。 沒有數據與ajax請求一起發送。 您需要執行類似的操作。

this.$http.get('api/search', this.search , function(search){
        this.$set('searchResults', search);
    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM