Vue 自定义指令使用任意字符串?

Vue 自定义指令使用任意字符串?

场景

Vue 自定义指令官方文档

自定义了一个权限指令,吾辈仅仅只是需要指令中的字符串,但 vue 解析指令时会抛出错误。有没有什么方式,让 vue 不把指令中的字符串当作表达式解析,而仅仅认为它是一个字符串呢?

如下,定义了一个指令

Vue.directive('realm', {
    bind(el, {expression}) {
        const result = expression.split(',').map(s => s.trim())
            .filter(s => rx.stringValidator.isEmpty(s))
            .every(s => realmSet.has(v))
        if (!result) {
            el.style.display = 'none'
        }
    },
})

使用指令

<a
  href="javascript:void(0);"
  @click="addInfo"
  class="add"
  v-realm="system-configuration:sys-domain-category:edit"
><i class="add_ico"></i>新增</a>

然后就炸了。。。抛出异常

[Vue warn]: Error compiling template:

invalid expression: Unexpected token : in

    system-configuration:sys-domain-category:edit

  Raw expression: v-realm="system-configuration:sys-domain-category:edit"
阅读 4.9k
2 个回答

加个冒号

v-realm="'system-configuration:sys-domain-category:edit'"

为什么不多加一层引号 然后用value代替expression呢?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题