 <p>In HTML:</p> <pre><code>&lt;input v-model="search"&gt; &lt;h4 v-if="!filteredPhotos.length"&gt;No results&lt;/h4&gt; &lt;ul&gt; &lt;li v-for="photo in filteredPhotos"&gt; &lt;img :src="photo.src" :alt="photo.name"&gt; &lt;/li&gt; &lt;/ul&gt; </code></pre> <p>In JS, you need to use computed properties like this:</p> <pre><code>computed: { filteredPhotos: function () { return this.photos.filter(function(photo){ return photo.name.indexOf(this.search) &gt; -1; }.bind(this)); } } </code></pre> <p>Demo: <a href="http://jsfiddle.net/crswll/Lr9r2kfv/37/" rel="nofollow">http://jsfiddle.net/crswll/Lr9r2kfv/37/</a></p>