繁体   English   中英

AngularJS检查条件并返回true或false

[英]AngularJS check condition and return true or false

我有这样的HTML:

<td><span ng-if="isuser(user) == false" type="button" >not allowed</span> </td>

仅当函数isuser(user)返回false时才显示上述html。

我有这样一个数组:

$scope.list = ["456", "111", "459"];

现在用户对象有一个名为id的数组。 这个id数组包含一个number ,其值可以是键456111459和有时也可能是empty也。

用户对象:

{"name":"pravin","status":"Live","id":[{"number":"111"}],"msg":"test"}

这是isuser函数:

$scope.isuser = function(user) {
  for (var i = 0; i < $scope.list.length; i++){
  var exists = user.id.find(({number}) => number === $scope.list[i]);
  }
if (exists)
  return true;
else
  return false;
};

但这总是返回false。

我希望for循环检查列表数组中是否存在数字键的值,然后只返回false。 我该怎么做?

问题在于以下声明

var exists = user.id.find(({number}) => number === $scope.list[i]);

每次exists变量时都会更新,并且您将始终获得最后一次更改。

一种方法可以是通过将回调函数作为参数传递来使用some方法。

$scope.isuser = function(user) {
   var exists = user.id.some(({number}) => $scope.list.includes(number));
   return exists;
}

试试这个会对你有所帮助

  $scope.isuser = function(user) {
       var exists = false;
    for (var i = 0; i < $scope.list.length; i++){
      exists = user.id.find(({number}) => number === $scope.list[i]);
    }
     if(i==$scope.list.length-1){
      if (exists)
        return true;
      else
        return false;
      }
  loop };

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM