html - 如何在不进入无限循环(Angular)的情况下调用一次按钮?
问题描述
也许标题不是很清楚,但这是我所拥有的。
我有一个场景,我在 HTML 中有一个按钮,我在单击按钮时调用服务,并且我希望 HTML B 知道何时单击 HTML A 中的按钮。
一个.html
<button (click)="passData(a,b,c)">
B.html
<div *ngIf="fromA()" >
{{ showResult() }}
</div>
组件.ts
passData(a: string, b:string, c:string) {
this.Xservice.getData.subscribe(data => res = data);
}
B.compoent.ts
fromA() {
this.xService.subscribe( data => res = data ); // This is observable
if (res !== undefined ) {
console.log("true returned");
return true;
}
}
因此,从上面我检查了控制台,它充斥着“真实返回”的日志,我想知道当按下 A.html 的按钮时如何调用它一次?
解决方案
你不需要使用*ngIf
. 你可以有
fromA():string {
if // Whatever logic you do
return "block";
else return "none";
}
现在我假设您的意思是您希望 HTML B 仅在单击 fromA() 时显示。所以你可以这样做:
<div [display] = "fromA()">
{{ showResults() }}
</div>
基本上,您只需将属性设置display
为任何结果fromA()
。如果未单击按钮(返回none
),则不显示 HTML(display=none
)。如果单击(返回inline
),则显示 HTML(display=inline
)。
当然,您可以使用除内联之外的任何其他显示属性来显示 HTML。
推荐阅读
- django-models - 如何从视图 django 中的 for 循环中检索上下文并将其发送到模板
- javascript - Google Apps 脚本、Gmail UI 插件、如何删除抄送收件人?
- laravel - XSRF 令牌和 Laravel 会话具有 base64 算法的解码
- python - 构建包期间没有名为“版本”的模块
- flutter - 如何从应用程序+网络中的URL下载图像?
- node.js - 从服务器端渲染图表时,d3 函数在 node.js 中不起作用
- r - 在 Spark R 数据框中删除多列
- html - 如何在 Svelte 中创建动态树结构?
- mysql - 如何修复 Cloud SQL (MySQL) 和 Cloud 函数慢查询
- c# - 进度 OpenEdge 错误 [60] [DataDirect][ODBC 20101 驱动程序]6013