Vue.jsで何かをビルドして以来、ずっと時間がかかりました。私はいくつかのアイテムをv-for
でレンダリングする単純なアプリケーションを構築しています。私はv-model
の入力ボックスを使用して項目(プリセット)のリストを検索したいと思います。v-for配列を検索するためにv-modelを使用する - Vue.js
コード
<div class="row top20">
<div class="col-md-3" v-for="preset in presets">
<div class="template-block" :id="preset.id">
<img src="http://placehold.it/120x120" v-bind:alt="preset.img" class="img img-responsive img-template">
<h3>{{ preset.presetName }}</h3>
</div>
</div>
</div>
データ
searchQuery: '',
presets: [
{id: '2', presetName: 'WooCommerce', img: 'woocommerce.png'},
{id: '3', presetName: 'Magento', img: 'magento.png'},
{id: '1', presetName: 'Custom', img: 'custom.png'}
]
だから私は<div class="col-md-3" v-for="preset in presets | searchQuery">
のようなものを試してみましたが、そのような他のものが、それは動作していないようです。私は計算されたプロパティを使用することを考えましたが、私は正確に彼らがどのように動作しているか分からないので、私はそれを理解していません。すばやく簡単なソリューションを持っている人はいますか?
編集
私が検索する方法を使用できることを考え出しました。しかし、その問題は、正確に一致した結果しか表示されないことです。私が好きなのは、何かを入力して文字が名前に含まれていても、(部分的に)一致する項目が表示されることです。次いで
<input type="text" v-model="searchQuery" />
関数を変更:
方法
methods: {
filterItems: function(presets) {
var app = this;
return presets.filter(function(preset) {
return preset.presetName == app.searchQuery;
})
}
}
編集ビュー
<div class="col-md-3" v-for="preset in filterItems(presets)" :key="preset.presetName">
良いソリューション。名前が「WooCommerce」で、クエリが「woocommerce」の場合、それは無効になります。合わない。とにかくありがとう:) – Gijsberts
ええ、忘れてしまった、(: - – JiangangXiong