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