私は単純なブックソーターアプリを組み立てており、filterBy
フィルタを使用していくつか問題があります。フィルタはnon-fiction
genre
のフィルタ処理には問題ありませんが、なんらかの理由でfiction
では機能しません。書籍のタイトルと著者を表示し、入力フィールドに、ジャンル別に表示されている書籍のリストをフィルタリングします。だから私が入力フィールドにフィクションを書くと、それはフィクションの本しか表示されません。これが私の見解は次のようになります。Vue.jsでfilterByを使用する方法
<div id="app">
<h1>{{title}}</h1>
<div id="input">
<input type="text" v-model="genre" placeholder="Search fiction/non-fiction">
</div>
<div id="display-books" v-for=" book in books | filterBy genre in 'genre' ">
<span>Title: {{book.title}}</span>
<span>Author: {{book.author}}</span>
</div>
</div>
そして、ここに私のapp.js
さ:
var appData = {
title: 'Book Sorter',
filters: 'Search filter',
filtertext: '* only show title if book is available',
genre: '',
books:
[
{genre: "fiction", title: "The Hobbit", author: "J.R.R Tolkien", available: false},
{genre: "non-fiction", title: "Homage to Catalonia", author: "George Orwell", available: true},
{genre: "non-fiction", title: "The Tipping Point", author: "Malcolm Gladwell", available: false},
{genre: "fiction", title: "Lord of the Flies", author: "William Golding", available: true},
{genre: "fiction", title: "The Call of the Wild", author: "Jack London", available: true}
]
}
new Vue({
el: "#app",
data: appData,
});
は、私が使用する必要があります完全一致フィルタ? –
正確です。おそらく、そのためのカスタムフィルタを作成することができます。ただし、このようなリストを表示するには、入力をドロップダウンに変更したい場合があります。このようにして、ユーザが所望のジャンルを選択した場合にのみイベントがトリガされる。 – crabbly
例としてフィドルを追加しました。見てみな。 – crabbly