Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/29.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
Angular 角度,如何将值从HTML模板传递到组件而不存在更改检测问题_Angular_Rxjs - Fatal编程技术网

Angular 角度,如何将值从HTML模板传递到组件而不存在更改检测问题

Angular 角度,如何将值从HTML模板传递到组件而不存在更改检测问题,angular,rxjs,Angular,Rxjs,我在尝试从HTML模板中检索值以进行计算时遇到问题;然而,我没有找到好的解决办法。当我在*ngFor模板中添加一个方法时,它会导致可怕的更改检测问题,该方法被称为100次。我也不能使用属性绑定,因为它在同一个组件中,而不是子组件。我正在遍历一个大型JSON对象数组,需要找到每个对象的issuember,并调用一个新服务。 下面是我如何处理变更检测问题的示例。 这可能是一个简单的解决方案,但它让我感到很难受 谢谢大家 HTML <div *ngFor="let m of issu

我在尝试从HTML模板中检索值以进行计算时遇到问题;然而,我没有找到好的解决办法。当我在
*ngFor
模板中添加一个方法时,它会导致可怕的更改检测问题,该方法被称为100次。我也不能使用属性绑定,因为它在同一个组件中,而不是子组件。我正在遍历一个大型JSON对象数组,需要找到每个对象的
issuember
,并调用一个新服务。 下面是我如何处理变更检测问题的示例。 这可能是一个简单的解决方案,但它让我感到很难受

谢谢大家

HTML

 <div *ngFor="let m of issues"> 
  .....
 {{findAdditionalIssues(m.issueNumber)}}

  .....
 </div

然后最好选择所有的
issueNumber
out,然后针对每个问题调用
callnewservice.get()
。您可以使用来并行触发所有这些请求,订阅者将等待all返回结果,然后再发出响应

forkJoin[issues.select(m => callnewservice.get(m.issueNumber))]
  .subscribe(additionalIssues => console.log(additionalIssues))
forkJoin描述:

当您有一组可观察对象并且只关心每个对象的最终发射值时,最好使用此运算符。这方面的一个常见用例是,如果您希望在页面加载(或某些其他事件)上发出多个请求,并且只希望在收到所有请求的响应时才采取操作。通过这种方式,它类似于您可能使用Promise.all的方式


您不能在ts文件中迭代artay,然后在视图中显示它吗?请事先获取“其他问题”,并显示数组,而不是在模板中调用findAdditionalIssues
forkJoin[issues.select(m => callnewservice.get(m.issueNumber))]
  .subscribe(additionalIssues => console.log(additionalIssues))