Vue.js - Force a filter application -
i wanted apply filter on object given v-repeat
components.
however, can't find way apply before conversion array of { $key: '...', $value: '...' }
.
here do:
vue.filter('getvalues', function (data) { return [data.mykey1]; }); var vm = new vue({ el: '#vue', data: { mykey1: 'myval1', mykey2: 'myval2' } });
<ul id="vue"> <li v-repeat="val: ($data | getvalues)">{{ val }}</li> </ul> <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/0.12.7/vue.js"></script>
notice ($data | getvalues)
try evaluate filter before conversion done.
i've achieved method in meantime:
var vm = new vue({ // ... methods: { getvalues: function (data) { return [data.mykey1]; } } });
var vm = new vue({ el: '#vue', data: { mykey1: 'myval1', mykey2: 'myval2' }, methods: { getvalues: function (data) { return [data.mykey1]; } } });
<ul id="vue"> <li v-repeat="val: getvalues($data)">{{ val }}</li> </ul> <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/0.12.7/vue.js"></script>
but i'd know if there way make filter apply first.
your getvalues()
approach common , fine approach. expression , filter syntax in reactive expressions isn't supposed solve data generation scenarios.
another approach use watch
against model calculate value want , set property on model. write v-repeat
against calculated value.
btw, in particular case, should able this:
<ul id="vue"> <li v-repeat="val: [ mykey1 ]">{{ val }}</li> </ul>
$data
model references attributes evaluated against.
Comments
Post a Comment