我建立自定義的指令,它存儲在它自己的文件vuejs定製指令似乎沒有註冊
autosize.js,它看起來像這樣:
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)
}
})
我使用它的文件組件內部並導入這樣的:
import Autosize from 'components/directives/autosize.js'
註冊這樣的:
directives: {
Autosize
}
在我的文件組件我嘗試使用這樣的:
<textarea v-autosize="input" :value="input" @input="update" class="form-control">{{input}}</textarea>
自動調整是應該使textarea的成長插件,當我測試增加更多的文字ofcourse沒有任何反應。但是似乎它不自動調整失敗的工作,但也許我錯過了一些東西,甚至沒有這些得到印刷:
console.log('autosize bind')
console.log('autosize update')
當我動態創建的組件。
任何人都有一個想法,我已經錯過了,使指令沒有約束力或更新?
在Vue公司2,用類似這樣的代碼工作典型的方法是使用一個包裝組件。但是就這條指令而言,'el'作爲指令中的一個參數被傳入,它不可用'this'(或'this'重命名爲'self')。 – Bert