vue自定义指令更改对应的data值(值不固定)

由于我不仔细看element-ui文档,导致此方法白写了,该需求可使用InputNumber 计数器组件来实现!!!!!!!

 

由于项目中需要监听输入框中输入的数字不能为负数,并且需要监听的input框过多,所以决定使用自定义指令来解决该问题

直接贴代码

自定义指令代码

// 输入框小于0就替换成0
    Vue.directive('changeToZero', {
      update: function(el, binding) {
        // 将需要修改的对象摘出来
        const _str = binding.rawName.split('[')[1].split(']')[0]
        if (binding.arg < 0) {
          // 执行set方法
          binding.value.set(_str)
        }
      }
    })

 在template中使用,指令这一块看不懂的请参见vue官方文档,在这里就不复述了

<el-input type="number" v-model="ruleData.up.singleAmount" placeholder=""  
v-changeToZero:[ruleData.up.singleAmount]="{set:setNumber}"></el-input>

set方法

   methods: {
      // 小于0变成0
      setNumber(val) {
        let _arr = val.split('.')
        let data = this
        for (let i = 0; i < _arr.length - 1; i++) {
          data = data[_arr[i]]
        }
        data[_arr[_arr.length - 1]] = 0
      },
    }

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue2,你可以使用自定义样式来修改组件的样式。有几种方法可以实现这个目标: 1. 使用内联样式:你可以在模板使用`style`属性来设置组件的内联样式。例如: ```html <template> <div :style="{ color: textColor, fontSize: fontSize + 'px' }"> 这是一个自定义样式的组件 </div> </template> <script> export default { data() { return { textColor: 'red', fontSize: 14, }; }, }; </script> ``` 在上面的例子,我们使用`:style`指令来绑定一个对象,对象的属性对应样式的属性,属性对应的样式。 2. 使用全局样式:你可以在Vue的根组件或者其他全局组件定义全局样式,然后在组件使用这些样式。例如: ```html <!-- 在根组件或者其他全局组件 --> <style> .custom-style { color: red; font-size: 14px; } </style> <!-- 在组件使用全局样式 --> <template> <div class="custom-style"> 这是一个自定义样式的组件 </div> </template> ``` 在上面的例子,我们在根组件或者其他全局组件定义了一个名为`.custom-style`的类,然后在组件使用该类来应用样式。 3. 使用CSS模块化:如果你在Vue项目启用了CSS模块化,你可以在组件使用模块化的方式来定义和使用样式。例如: ```html <!-- 在组件定义模块化样式 --> <style module> .custom-style { color: red; font-size: 14px; } </style> <!-- 在组件使用模块化样式 --> <template> <div :class="$style.customStyle"> 这是一个自定义样式的组件 </div> </template> ``` 在上面的例子,我们在组件的`<style>`标签上添加了`module`属性,表示启用CSS模块化。然后我们可以使用`$style`对象来引用模块化的样式。 这些方法可以根据你的具体需求选择适合的方式来自定义组件的样式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值