首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vue自定义指令-对象属性未定义

Vue自定义指令-对象属性未定义
EN

Stack Overflow用户
提问于 2020-07-07 13:54:07
回答 1查看 254关注 0票数 0

我有一个定制的Vue指令来显示/隐藏一个基于角色的元素。

代码语言:javascript
复制
Vue.directive('role', (el, binding, vnode ) => {
  const modifiers = binding.modifiers
  const roles = vnode.context.$store.state.roles;

  if (!roles.includes(binding.value) ||  (roles.includes(binding.value) && modifiers.not)) {
    el.style.display = 'none';
    vnode.elm.parentElement.removeChild(vnode.elm)

  }
})

这是模板,在v中。它们不适合管理员用户,我有

代码语言:javascript
复制
  <span
    v-role="'admin'"
  >
     {{ user.firstName }}, {{ user.lastName  }}
  </span>

我遇到的问题是要么使用“不显示”,要么删除该孩子仍然抛出错误。

无法读取未定义的属性“firstName”

我可以检查模板中的属性,但是如果它不存在,是否有一种不呈现它的方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-07 15:55:06

您应该简单地添加安全措施:

代码语言:javascript
复制
  <span v-role="'admin'">
     {{ (user || {}).firstName }}, {{ (user || {}).lastName  }}
  </span>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62776890

复制
相关文章

相似问题

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