I'm a total noob on Vue.js and I'm trying to build some kind of pretty customized options selector.
My data-binding works fine but I can not figure out how class-binding works for checking each node's value.
HTML:
<div id="pretty_options">
<ul class="pretty-options" data-field="field_id">
<li class="option" v-on:click="select" v-bind:class="{ selected : isSelected }" data-value="1">One</li>
<li class="option" v-on:click="select" v-bind:class="{ selected : isSelected }" data-value="2">Two</li>
<li class="option" v-on:click="select" v-bind:class="{ selected : isSelected }" data-value="3">Three</li>
<li class="option" v-on:click="select" v-bind:class="{ selected : isSelected }" data-value="4">Four</li>
<li class="option" v-on:click="select" v-bind:class="{ selected : isSelected }" data-value="5">Five</li>
</ul>
<input type="number" id="field_id" name="field_id" v-model="field_id">
</div>
JS:
var mcveSample = new Vue({
el: '#pretty_options',
data: {
field_id: 1
},
methods: {
select: function(event) {
var option = event.currentTarget;
var value = option.dataset.value;
this.field_id = value;
}
},
computed: {
isSelected: function(element) {
// I'd like to do something like this:
// return this.field_id == element.dataset.value;
// But, I can't find how to check each element's value...
}
}
});
Here's a JSFiddle.
So, my question is: How do I compare with every node's value/attribute on a computed function?