I've got a component and I would like to set a data item outside the component.
How would I do this with a directive?
I was thinking about something like this:
Vue.directive('init', {
bind: function(el, binding, vnode) {
vnode.context[binding.arg] = binding.value;
}
});
But it's not working:
Vue.directive('init', {
bind: function(el, binding, vnode) {
vnode.context[binding.arg] = binding.value;
}
});
Vue.component('test', {
template: '<p>{{date}}</p>',
data() {
return {
date: ""
}
}
});
new Vue({
el: '#app'
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.4.1/vue.js"></script>
<div id="app">
<test v-init:date="'2017-07-20 09:11:42'"></test>
</div>
Any Idea how I would get this to work?
--edit--
I don't want to use props for this! I've lots and lots of fields.
This should work.
Vue.directive('init', {
bind: function(el, binding, vnode) {
let component = el.__vue__
component[binding.arg] = binding.value
}
});
Vue.component('test', {
template: '<p>{{date}}</p>',
data() {
return {
date: ""
}
}
})
new Vue({
el: '#app'
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.4.1/vue.js"></script>
<div id="app">
<test v-init:date="'2017-07-20 09:11:42'"></test>
</div>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With