首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在条件下设置Vue指令

在条件下设置Vue指令
EN

Stack Overflow用户
提问于 2018-08-14 08:07:52
回答 3查看 3.2K关注 0票数 4

我想将指令放在条件上的Vue组件中。我已经安装了一个名为“掩码”的包,我想将v-掩码指令设置为条件。在某些情况下,组件没有称为“掩码”的属性,但在某些情况下却有。因此,当我不将掩码传递给我的组件时,我会得到这个错误--这是我使用v掩码指令的组件:

代码语言:javascript
复制
<input v-mask="mask" />

如果掩码属性传递,是否可以插入v-掩码,如果掩码为空?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-08-14 08:11:16

代码语言:javascript
复制
<input v-mask="mask" v-if="mask.length">
<input v-else>
票数 4
EN

Stack Overflow用户

发布于 2020-07-24 22:34:36

可以在绑定指令之前检查条件。

考虑一下您的用例:

代码语言:javascript
复制
<input v-mask="mask" />

您的指令将如下所示:

代码语言:javascript
复制
import { mask } from 'v-mask'

directives: {
    mask: {
      bind(el, binding, vnode, oldVnode) {

        // This is the condition
        if (binding.value) {
          mask(el, binding, vnode, oldVnode)
        }

      }
    },
},

bind()方法中的条件检查传递给指令的值是否存在,是否为true-ish。

如果是真-ish,则继续执行实际的指令。

票数 5
EN

Stack Overflow用户

发布于 2018-08-14 09:45:00

您可以在这里使用计算项;

代码语言:javascript
复制
var vm = new Vue({
  el: '#example',
  data: {
    mask: 'maskdata'
  },
  computed: {
    IsMaskEmpty: function () {
      return this.mask === "";
    }
  }
})

使用IsMaskEmpty函数计算bool结果之后,可以根据需要创建DOM元素。

代码语言:javascript
复制
<input v-mask="mask" v-if="!IsMaskEmpty">
<input v-if="IsMaskEmpty">
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51836641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档