So, wenn ich den Code unter dem bind
Hook triggert, gerade gut, aber der ComponentUpdated Hook scheint nie zu laufen, trotz der Klasse der Komponente es ist verpflichtet, von "neutral" zu "include" zu ändern. Kann mir jemand helfen festzustellen, warum das Update nie ausgeführt wird, selbst wenn auf eine Instanz der Komponente mit der angefügten Anweisung geklickt wird?Vue.js benutzerdefinierte Direktive nicht ComponentUpdated Hook?
HTML
<ternary-toggle display-text="Broken" v-ternary="'baz'"></th>
JS
Vue.directive('ternary', {
bind: function(el, binding) {
var instanceName = JSON.stringify(binding.value);
if (this['_' + instanceName] == undefined) {
this['_' + instanceName] = {};
}
},
componentUpdated: function(el, binding) {
var instanceName = JSON.stringify(binding.value);
console.log(instanceName);
}
});
var ternaryToggle = Vue.component('ternary-toggle', {
props: ['displayText'],
data: function() {
return {
state: 'neutral',
stateTransitions: {
neutral: 'include',
include: 'exclude',
exclude: 'neutral'
}
}
},
methods: {
toggle: function() {
this.state = this.stateTransitions[this.state]
this.$emit('switched', this.state)
}
},
template: '<span v-bind:class="state + \' btn btn-small\'" v-on:click="toggle">{{ displayText }}</span>'
});
Haben Sie jemals eine Antwort darauf gefunden? – Jeppebm
@Jeppebm Ich habe gerade gepostet, was ich stattdessen verwendet habe. – BWStearns