if-statement - Vue方法范围,从if语句返回不返回
问题描述
我想根据 v-for 中的用户角色检查从 Vue 方法返回真/假,并且该方法没有从 if 语句返回。
一、模板是这样的(简体)
<div v-for="user in users" :key="user.id">
<div :contenteditable="checkuser(user)">{{content}}</div>
</div>
我只需要真/假,这是 checkMethod
这不起作用
checkUser(user) {
if (user.admin) {
return user.team_id === this.$store.state.user.team_id;
// I would expect to return from method here and not continue execution
// also, any variables (even declared outside if) are not modified
}
if (user.deleg) {
return user.subteam_id === this.$store.state.user.subteam_id;
}
// method ends here
}
我知道这既愚蠢又简单,但我无法让它发挥作用。如果只有一个检查,它显然可以正常工作,但我想检查它是否有 2 个角色。管理员也有委托权限,所以如果用户是管理员,则不需要检查委托,但如果他没有管理员,则应检查委托。
解决方案
@skirtle,谢谢,你只是对我的大脑做了一些混乱的调用。这完全是我的想法失败了。
解决代码如下
checkUser(user) {
if (this.$store.getters.isAdmin) {
return true;
}
if (this.$store.getters.isDeleg) {
return user.subteam_id === this.$store.state.user.subteam_id;
}
}
解释
我正在检查从v-for传递的user.admin,但我需要检查当前登录用户的user.admin(如果他可以编辑内容,则将该属性绑定到 true/false)。因为我已经在 vuex 中有这个,所以我只是用 getter 抓住了它并返回了 true (如你所说的那样工作)。
我希望这是有道理的。再次感谢,我被困住了,你帮助了我。
@Jacob,我只是用这个函数将 contenteditable 绑定到 true/false。
推荐阅读
- python - 如何使用耦合 ODE 实现射击方法
- tensorflow - 使用 LPOT 量化模型时出错
- c - Contiki os中对clock_gettime的未定义引用
- anaconda - Jupyter 笔记本没有在 Ananconda 中打开
- javascript - CoreUI多选onchange事件不起作用
- html - 在 flexbox 中,我无法使用 justify-self: flex-end; 将项目放在正确的位置;
- javascript - 尝试在空引用对象引用上调用虚拟方法“int.java.lang.String.hashCode()”
- ruby-on-rails - Rails has_many 返回空数组
- php - 在 SFC Payment Gateway -> SFC Pay - Request Encryption API 中获取中间件错误作为响应
- linux - 如何修复导入错误:libstdc++.so.6 错误,GLIBCXX 3.4.26