Vue 使用自定义指令修改底层 dom 元素,没有效果,请大佬指教
使用自定义指令 达到el-input 金额格式化的效果,数据是1000 但是dom需要渲染出1,000的效果
自定义指令代码
export function VMoney(el, binding, vnode) {
const len = binding.arg
if (el.tagName.toLocaleUpperCase() !== ‘INPUT’) {
var els = el.getElementsByTagName(‘input’)
if (els.length !== 1) {
} else {
el = els[0]
}
}
el.onblur = function () {
let value = vnode.data.model.value
if (!value) {
return
}
value = (value.toString()).replace(‘,’, ‘’)
if (!isNaN(value)) {
vnode.data.model.callback(value)
el.value = XEUtils.commafy(value, { digits: len })// 转换为千分位
}
}
el.onblur()
}
el-input处调用指令
出来的效果
需要达到的效果
初始化时是没有效果的,但是input丢失焦点时,事有效果的,需要在初始化时也达到千分位的效果,请大佬指教。
用vue的指令钩子函数inserted,像下面这样定义全局money指令
按照你这种方式,没有效果