ich benutzerdefinierte Richtlinie bin Gebäude wirdvuejs benutzerdefinierte Richtlinie scheint nicht
autosize.js in einer eigenen Datei gespeichert, und es sieht wie folgt aus:
import Vue from 'vue'
import autosize from 'autosize'
Vue.directive('autosize', {
bind: function() {
console.log('autosize bind')
var self = this
Vue.nextTick(function() {
autosize(self.el)
})
},
update: function(value) {
console.log('autosize update')
var self = this
Vue.nextTick(function() {
self.el.value = value
autosize.update(self.el)
})
},
unbind: function() {
autosize.destroy(this.el)
}
})
Ich benutze es in Dateikomponente und importieren sie es wie folgt aus:
import Autosize from 'components/directives/autosize.js'
registrieren es wie folgt aus:
directives: {
Autosize
}
In meiner Dateikomponente ich versuche es so zu verwenden:
<textarea v-autosize="input" :value="input" @input="update" class="form-control">{{input}}</textarea>
automatisch anpassen ein Plugin ist, das machen TextArea- wachsen sollte, natürlich nichts passiert, wenn ich teste, mehr Text addieren. Aber es scheint, dass es nicht autosize, dass nicht funktioniert, aber vielleicht habe ich etwas verpasst, nicht einmal diese erhalten gedruckt:
console.log('autosize bind')
console.log('autosize update')
, wenn ich die Komponente dynamisch erstellen.
Jeder hat eine Idee, was ich verpasst habe, so dass die Richtlinie nicht bindend ist oder aktualisiert?
In Vue 2, die typische Art und Weise mit dem Code so zu arbeiten, um eine Wrapper-Komponente verwendet wird. Aber was diese Direktive betrifft, wird "el" als ein Argument in Direktiven übergeben, es ist nicht verfügbar, indem 'this' (oder' this' umbenannt als 'self') verwendet wird. – Bert