摘要:使用自定義指令格式化背景使用開發(fā)的過程中遇到循環(huán)的數(shù)據(jù)只能輸入數(shù)字,并且有不要小數(shù)點(diǎn),有需要小數(shù)點(diǎn)的使用進(jìn)行控制開發(fā)頁面使用方式為保留幾位小數(shù)因?yàn)橛玫氖堑模M件外層包著一層所以要使用獲取對(duì)其監(jiān)聽失
使用自定義指令格式化el-input
背景使用element開發(fā)的過程中遇到循環(huán)的數(shù)據(jù)只能輸入數(shù)字,并且有不要小數(shù)點(diǎn),有需要小數(shù)點(diǎn)的
使用vue directive 進(jìn)行控制
頁面使用方式 v-numberInt:0="item.first_fee" 0為保留幾位小數(shù)
{{item.additional_amount}}
因?yàn)橛玫氖莈lement 的el-input ,組件input外層包著一層div所以要使用const element = el.getElementsByTagName("input")[0]獲取 input對(duì)其監(jiān)聽失焦?當(dāng)輸入的不是數(shù)字時(shí),失焦后會(huì)變成0,沒有使用directive update方法,比較簡(jiǎn)單directives.js
directives.js
Vue.directive("numberInt", { bind: function(el, binding, vnode) { const element = el.getElementsByTagName("input")[0] const len = binding.arg // 初始化設(shè)置 element.value = Number(element.value ).toFixed(len) // 失焦時(shí)候格式化 element.addEventListener("blur", function() { if (isNaN(element.value)) { vnode.data.model.callback(0) } else { vnode.data.model.callback(Number(element.value).toFixed(len)) } }) }})
如果大家有更好的方法希望能留言交流
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/98243.html
摘要:我到現(xiàn)在也沒有搞明白這是為什么,猜測(cè)了一下是存才一個(gè)全局變量,當(dāng)我們第一次使獲得焦點(diǎn)以后改變了這個(gè)預(yù)設(shè)變量的值,在失去焦點(diǎn)的時(shí)候并沒有將這個(gè)值重置,所以導(dǎo)致了后面的問題。廢話不多說,下面是當(dāng)同時(shí)使用和的時(shí)候的解決方案。 在制作項(xiàng)目的時(shí)候遇到一個(gè)需求,點(diǎn)擊一個(gè)按鈕彈出一個(gè)input輸入框,并讓輸入框獲得焦點(diǎn),項(xiàng)目中引用了element-ui 在網(wǎng)上查找了很多方法,但是在實(shí)際使用中發(fā)現(xiàn)了一...
摘要:目標(biāo)中間一段空白把導(dǎo)航欄分為左右兩個(gè)部分在導(dǎo)航欄上加上一個(gè)搜索框,但不被的樣式污染。 前置 本文需要對(duì)CSS,Vue,ElementUI有基本的了解。 本文以ElementUI提供的導(dǎo)航菜單組件為基礎(chǔ)。 本文希望能在此組件基礎(chǔ)上實(shí)現(xiàn)以下內(nèi)容: 中間一段空白把導(dǎo)航欄分為左右兩個(gè)部分 在導(dǎo)航欄上加上一個(gè)搜索框,但不被 el-menu-item 的樣式污染。 先研究清楚ElementUI...
摘要:案例持續(xù)觸發(fā)事件時(shí),并不立即執(zhí)行函數(shù),當(dāng)毫秒內(nèi)沒有觸發(fā)事件時(shí),才會(huì)延時(shí)觸發(fā)一次函數(shù)。也以函數(shù)形式暴露普通插槽。這樣的場(chǎng)景組件用函數(shù)式組件是非常方便的。相關(guān)閱讀函數(shù)式組件自定義指令前言 有echarts使用經(jīng)驗(yàn)的同學(xué)可能遇到過這樣的場(chǎng)景,在window.onresize事件回調(diào)里觸發(fā)echartsBox.resize()方法來達(dá)到重繪的目的,resize事件是連續(xù)觸發(fā)的這意味著echarts...
摘要:基于封裝的表單渲染器,完整繼承了的屬性定義,并進(jìn)行了簡(jiǎn)單擴(kuò)展,從而用戶能夠通過使用一段預(yù)設(shè)的數(shù)據(jù)渲染出一個(gè)完整的表單。設(shè)置為可禁用所有原子表單。獲取當(dāng)前表單的值。 基于 element-ui 封裝的表單渲染器,完整繼承了 element 的屬性定義,并進(jìn)行了簡(jiǎn)單擴(kuò)展,從而用戶能夠通過使用一段預(yù)設(shè)的數(shù)據(jù)渲染出一個(gè)完整的 element 表單。 演示地址 項(xiàng)目地址 Usage // S...
我們時(shí)常會(huì)想在保持第三方組件原有功能(屬性props、事件events、插槽slots、方法methods)的基礎(chǔ)上,這些功能如何優(yōu)化的實(shí)現(xiàn)? 以Element Plus的el-input為例: 在封裝一個(gè)MyInput組件,把要使用的屬性props、事件events和插槽slots、方法methods先要依照自己的需求來編寫: //MyInput.vue <template&...
閱讀 3417·2021-11-24 09:38
閱讀 3194·2021-11-22 09:34
閱讀 2108·2021-09-22 16:03
閱讀 2368·2019-08-29 18:37
閱讀 380·2019-08-29 16:15
閱讀 1770·2019-08-26 13:56
閱讀 866·2019-08-26 12:21
閱讀 2207·2019-08-26 12:15