Фильтрация таблицы с помощью select vue.js

553
24 августа 2017, 22:40

Как отфильтровать таблицу по значению select. Например, если выбирается select с value admin то показать строки таблицы со значением admin.

P.S: Брать напрямую значение v-model и сравнить через цикл и отключать не прошедшие проверку элементы через display none или можно по другому?

<template> 
  <select name="select" v-model="selected"> 
		<option disabled value="">Выберите один из вариантов</option> 
		<option v-for="option in options" v-bind:value="option.value"> {{ option.text }} </option> 
	</select> 
</template> 
 
<script> 
export default { 
	data: function() { 
		return { 
			selected: '', 
			options: [ 
				{ text: 'User', value: 'user'}, 
				{ text: 'Admin', value: 'admin'}, 
				{ text: 'superAdmin', value: 'superAdmin'} 
			] 
		} 
	} 
} 
</script> 
 
// Table 
 
<template> 
	<div class="container"> 
		<table> 
			<tr> 
				<th v-for='column in columns' v-on:click='sortTable(column)'> 
					{{ column }} 
				</th> 
			</tr> 
			<tr v-for='row in filteredUsers'> 
				<td v-for="column in columns">{{row[column]}}</td> 
			</tr> 
		</table> 
	</div> 
	 
</template> 
 
<script> 
 
export default { 
	props: ['searchQuery'], 
  data: function() { 
    return { 
			selected: 'admin', 
			rows: [ 
				{ name: 'John', email: "john@gmail.com", root: 'superAdmin' }, 
				{ name: 'Jane', email: "jane@gmail.com", root: 'superAdmin' }, 
				{ name: 'Paul', email: "paul@gmail.com", root: 'Admin' }, 
				{ name: 'Kate', email: "kate@gmail.com", root: 'Admin' }, 
				{ name: 'Amanda', email: "amanda@gmail.com", root: 'User' }, 
				{ name: 'Steve', email: "steve@gmail.com", root: 'superAdmin' }, 
				{ name: 'Keith', email: "keith@gmail.com", root: 'User' }, 
				{ name: 'Don', email: "don@gmail.com", root: 'Admin' }, 
				{ name: 'Susan', email: "susan@gmail.com", root: 'superAdmin' } 
			] 
    } 
	}, 
	computed: { 
		filteredUsers: function() { 
			return this.rows.filter(function(user) { 
				return user.name.toLowerCase().indexOf(this.searchQuery.toLowerCase()) > -1; 
			}.bind(this)); 
		} 
	} 
} 
</script>

READ ALSO
Удаление повторяющихся слов из строки

Удаление повторяющихся слов из строки

Есть строка, необходимо удалить из неё всё повторяющиеся слова те из строки http://spb

315
Как пройти по объекту как ключ значение

Как пройти по объекту как ключ значение

Есть такая структура данных

321
не работает fetch

не работает fetch

не пойму как работает этот фетч

283
PHP Warning: mysqli_connect(): (HY000/1698): Access denied for user &#39;root&#39;@&#39;localhost&#39; in

PHP Warning: mysqli_connect(): (HY000/1698): Access denied for user 'root'@'localhost' in

Делаю сайт, не могу подключиться к базеКод

253