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.
vnode, it turns out it points to the root vue. That's why it didn't work for you. Check out my answer below for a solution.