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

560
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

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

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

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

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

не работает fetch

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

288
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

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

258