2016-04-12 10 views
0

Şu anda filtreBy filtresi, bir dizede eşleşen değerleri arar. Örneğin "e" ile filtrelenirsek, filtrelenen sonuçlar aşağıdakileri içerebilir: "Eğlence", "İnternet", "Hizmetler".FilterBy, Başlangıç ​​dizesinden

Dizgenin başlangıcından itibaren eşleşmeye başlamak ve geri kalanını görmezden gelmek için filterBy'yi yönlendirmemin bir yolu var mıdır, böylece o setten geri dönen tek sonuç "Eğlence" dir?

cevap

3

Kendi Filter yazıp, aradığınız alanı indexOf işaretleyebilirsiniz. o bir çek ekledikten sonra çalışır https://jsfiddle.net/jb22wp1b/

+0

Çok takdir:

Vue.filter('startsWith', function (array, search, field) { if (!search.length) return array; return array.filter(function(element) { return element[field].toLowerCase().indexOf(search.toLowerCase()) === 0; }) }) 

Aşağıda kısa bir demo:

Diyelim ki Sonra filtre böyle bir şey bakabilirsiniz

<div id="app"> <input v-model="search"> <div v-for="item in items | startsWith search 'name'"> {{ item.name }} </div> </div> 

var diyelim undefined: eğer (arama === undefined ||! search.length) dönüş dizisi; – Frisbetarian

+0

Verilerinizde arama tanımlamanız gerekir. –

İlgili konular