我有这样的 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
键,其值可以是 456
、111
或 459
有时它也可能是空
。
用户对象:
{"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;
}
关于javascript - AngularJS 检查条件并返回 true 或 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54177524/