自定义指令 限制input 的输入位数

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<meta http-equiv="X-UA-Compatible" content="ie=edge">

<title>限制input输入的位数</title>

</head>

<body>

<div id="app">

<input type="text"   v-split.5="msg"/>

</div>

</body>

<script src="./node_modules/vue/dist/vue.js"></script>

<script>

//设置input 的输入位数

Vue.directive(‘split‘,{

update(el,bindings,vnode) {

console.log(bindings);

let [,len]  = bindings.rawName.split(‘.‘);

console.log(len)

let ctx = vnode.context;  //msg

el.addEventListener(‘input‘,(e)=>{

let  val  =  e.target.value.slice(0,len);

ctx[bindings.expression]=val;

el.value = val;

})

//默认值

el.value=ctx[bindings.expression];

},

bind(el,bindings,vnode) {

let ctx = vnode.context;  //msg

let [,len]  = bindings.rawName.split(‘.‘);

el.addEventListener(‘input‘,(e)=>{

let  val  =  e.target.value.slice(0,len);

ctx[bindings.expression]=val;

el.value = val;

})

//默认值

el.value=ctx[bindings.expression];

}

})

let vm = new Vue({

el:"#app",

data() {

return {

msg:‘a‘

}

}

})

</script>

</html>

el,bindings,vnode

el表示 html 元素

bindings 表示绑定的元素上的属性

vnode 表示绑定元素的虚拟node

原文地址:https://www.cnblogs.com/guangzhou11/p/11565198.html

时间: 2024-10-08 19:43:35

自定义指令 限制input 的输入位数的相关文章

angular5 自定义指令 输入输出 @Input @Output(右键点击事件传递)

指令写法,angular5官网文档给的很详细. 首先要创建一个文件,需注意命名规范(后缀名为xxx.directive.ts): 今天要记录的是在多个li中,右键点击之后显示出对应的菜单,直接上图吧! 右键点击在js中只需要这样写就行: document.oncontextmenu = function(e){   e.preventDefault(); }; 但是在angular中,需要单独定义指令,用@Input进行数据绑定,传递给父元素值,再用@Output将此事件发射出去,让父元素能够接

Angular17 Angular自定义指令

1 什么是HTML HTML文档就是一个纯文本文件,该文件包含了HTML元素.CSS样式以及JavaScript代码:HTML元素是由标签呈现,浏览器会为每个标签创建带有属性的DOM对象,浏览器通过渲染这些DOM节点来呈现内容,用户在浏览器中看到的内容就是浏览器渲染DOM对象后的结果. 2 指令的分类 组件.属性指令.结构性指令 具体的知识点请参见<Angular2揭秘> 3 指定义指令常用到的一些常量 3.1 Directive 用于装饰控制器类来指明该控制器类是一个自定义指令控制器类 3.

vue自定义指令directive

vue中指令分为全局指令和局部指令 先来看全局自定义指令: 第一个参数是指令的名字,第二个参数可以是函数也可以是对象,先来看函数: 函数中接收三个参数: el在这里是input元素 bindings里是一些绑定信息: 其中expression是指绑定的变量名字,这里是content name是指令名字 value是绑定数据的值,上面content为空,所以目前value为空 v-slice上还可以写修饰符 还可以传参: vnode虚拟节点: vnode中contex是vue实例,其中的conte

vue怎么自定义指令??

最近看看vue中自定义指令,感觉vue的指令和angular1的指令相差较大 <script> //指令钩子函数: /* bind 只调用一次,指令第一次绑定到元素的时调用 inserted 被指令绑定指令的元素插入 父节点的时候调用 update 被绑定的元素模版只要发生变化,就会触发(通过比较模板变化前后) componentUpdated 被绑定元素所在模版完成一次更新周期时被触发 unbind 指令被解除绑定的时候 */ /*定义指令回调函数(钩子函数的几个参数的意义)第一个参数:绑定

Angular中的内置指令和自定义指令

NG中的指令,到底是什么(what)? 为什么会有(why)?以及怎样使用(how)? What: 在NG中,指令扩展HTML功能,为 DOM 元素调用方法.定义行为绑定数据等. Why: 最大程度减少DOM操作,实现数据绑定,与业务逻辑进行交互. How: 指令主要分为两种:内置指令和自定义指令,通过下面的例子,简单记录一下如何去使用. 内置指令 在官方API文档上罗列了很多指令,内置指令可以分为:普通指令 和 事件指令,他们都是作用于HTML之上的,通过添加属性的方式来实现的.简单看一下一些

vue.js 学习四(指令和自定义指令)

官方的指令说明已经很简单了,这里再写一遍,也是自己加深一下印象 v-text 就是写入单纯的文本,可以忽略这个指令直接双花括号代替 <span v-text="msg"></span> <!-- 和下面的一样 --> <span>{{msg}}</span> v-html 更新元素的 innerHTML,如果取回的值里面包含了html的样式,可以使用这个指令. 以下抄写了官方注意事项,对于用户输入的HTML,显示的时候需要谨慎

vue内置指令与自定义指令

一.内置指令 1.v-bind:响应并更新DOM特性:例如:v-bind:href  v-bind:class  v-bind:title  v-bind:bb 2.v-on:用于监听DOM事件: 例如:v-on:click  v-on:keyup 3.v-model:数据双向绑定:用于表单输入等:例如:<input v-model="message"> 4.v-show:条件渲染指令,为DOM设置css的style属性 5.v-if:条件渲染指令,动态在DOM内添加或删除

vue.js之过滤器,自定义指令,自定义键盘信息以及监听数据变化

一.监听数据变化 1.监听数据变化有两种,深度和浅度,形式如下: vm.$watch(name,fnCb); //浅度 vm.$watch(name,fnCb,{deep:true}); //深度监视 2.实例用法 2.1-1浅度监听:当点击页面,弹出发生变化了,a的值变为1,b的值变为101 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8">

Vue的土著指令和自定义指令

1.土著指令 当我开始学习Vue的时候,看官网的时候看到了"指令"两个字.我愣住了,what?指令是啥啊?后来继续往下看,像这种什么"v-for""v-show""v-if"都叫做指令.等到后来Vue玩的差不多了,开始写项目的时候发现,常见的指令也就那么几个,比如"v-if""v-show""v-model""v-for""v-bind&