当前,我正在检查checkDevice(obj)
,看是否存在一个值...我还需要分别获取计数。 设备出现在Array
中的次数。
component.ts
public checkDevice(obj) {
if (obj == null || obj == '' || obj == '-1') {
return false;
} else {
return true;
}
}
component.html
<div class="float-left" *ngIf="checkDevice(obj.device_token) == true">
<i class="fa fa-icon" aria-hidden="true"></i>
</div>
编辑执行数据库查询的 php脚本
$users = array();
if ($results = $dbh->runQuery($sql)) {
foreach ($results as $key=>$row){
$users[$row['user_id']][] = array('user_id'=>$row['user_id'],
'user_token' => $row['utoken'],
'device_token' => $row['device'],
'group_name' => $row['group_name']);
}
}
答案 0 :(得分:1)
如果您只想测试对象属性是否存在,则应该使用以下内容:
<div class="float-left" *ngIf="obj.device_token">
<i class="fa fa-icon" aria-hidden="true"></i>
</div>
如果要使设备对象出现在数组中,请尝试以下解决方案:
getDeviceOccurrence(deviceArray: Array<object>, device: object): number {
return deviceArray.reduce((accumulator: number, currentValue: object) => {
if (_.isEqual(currentValue, device)) {
return accumulator = accumulator + 1;
}
return accumulator;
}, 0);
}
所建议解决方案的注意事项:
在模板中的用法:
<span>{{ getDeviceOccurrence(devices, device) }}</span>
答案 1 :(得分:0)
我认为您也可以编写此代码。
<div class="float-left" *ngIf="obj.device_toke">
<i class="fa fa-icon" aria-hidden="true"></i>
</div>
答案 2 :(得分:0)
我建议您不要在HTML中使用函数进行数据绑定,这可能会导致性能问题,因为您的函数每次都会被调用以进行检查。
我认为您的设备已经有了该阵列,并且正在 ngFor 中进行迭代。
我建议您采取的步骤是:
这样做可以解决两件事: