![](/img/trans.png)
[英]In AngularJs which way is better while using ng-if, is to perform the condition in the template or call a function that return true or 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
,其值可以是键456
, 111
或459
和有时也可能是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.