Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
If statement Vue方法作用域,从if语句返回不返回_If Statement_Vue.js_Methods_Scope_Return - Fatal编程技术网

If statement Vue方法作用域,从if语句返回不返回

If statement Vue方法作用域,从if语句返回不返回,if-statement,vue.js,methods,scope,return,If Statement,Vue.js,Methods,Scope,Return,我希望根据v-for中的用户角色检查从Vue方法返回true/false,而该方法不是从if语句返回 首先,模板是这样的(简化) 我知道这是愚蠢和简单的,但我不能让它工作。如果只有一个检查,显然可以,但我想检查两个角色。管理员也有deleg权限,因此如果用户是管理员,则不需要检查deleg,但如果他没有管理员权限,则应检查deleg。@shirtle,谢谢你,你刚才在调用混乱的情况下对我的大脑做了一些事情。这完全是我的思维失误 下面已解决的代码 checkUser(user) { i

我希望根据v-for中的用户角色检查从Vue方法返回true/false,而该方法不是从if语句返回

首先,模板是这样的(简化)


我知道这是愚蠢和简单的,但我不能让它工作。如果只有一个检查,显然可以,但我想检查两个角色。管理员也有deleg权限,因此如果用户是管理员,则不需要检查deleg,但如果他没有管理员权限,则应检查deleg。

@shirtle,谢谢你,你刚才在调用混乱的情况下对我的大脑做了一些事情。这完全是我的思维失误

下面已解决的代码

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

为什么在内部div上有一个名为
contenteditable
的道具?div无论如何都不能使用道具。执行将不会在
返回之后继续。如果你认为这就是正在发生的事情,那么你是在误解某些事情。我建议在方法的开头放一个
debugger
语句,这样您就可以单步执行了。它将为每个用户调用一次,因此可能是由于在不同的路径上进行了不同的调用而造成混淆。@JacobSmith它不是一个道具,而是一个标准的HTML属性。@Kittle标准HTML属性前面没有
只是
v-bind:
的快捷方式,这意味着属性的值由JS表达式确定。除此之外没有其他规则
    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
    }
checkUser(user) {
      if (this.$store.getters.isAdmin) {
        return true;
      }

      if (this.$store.getters.isDeleg) {
        return user.subteam_id === this.$store.state.user.subteam_id;
      }
    }