angular - 在没有绑定的情况下在组件中传递输入值
问题描述
我在 Angular 10 中有一个组件,如下所示:
import { Component, Input, OnInit } from '@angular/core';
@Component({
selector: 'app-summary',
templateUrl: './summary.component.html',
styleUrls: ['./summary.component.scss']
})
export class SummaryComponent implements OnInit {
@Input() totalItems: number = 0;
constructor() { }
ngOnInit(): void {}
}
并将其添加到如下页面:
<app-summary [totalItems]="internalTotalItems"></app-summary>
internalTotalItems
并且在声明和维护变量时一切正常。我想知道是否可以更新totalItems
组件的属性而不将其绑定到主页中的变量?
如果有很多输入都需要在主页中声明,这会变得很痛苦,调用类似[app-summary].totalItems=123
或类似的东西会更容易。这甚至可能吗?
解决方案
您可以像这样从父级引用您的组件:
@ViewChild(AppSummaryComponent)
public comp: AppSummaryComponent | undefined;
然后,您可以直接访问public
如下属性:
public ngAfterViewInit(): void {
if(this.comp){
this.comp.totalItems = 123;
}
}
不过我不建议这样做,使用可用的输入语法就足够了。
如果您在格式化时遇到问题,您应该考虑使用 html 格式化程序,它可以很好地格式化所有属性。
推荐阅读
- c# - 将 C# MVC 路由范围缩小到命名空间或部分控制器组
- android - 是否可以在没有源代码的情况下将 android jni 库从 x86 传输到 x64?
- excel - 选择更改时不会出现 Msgbox 框,并且单击确定按钮不会消失
- c# - 是否可以为 LINQ 使用自定义内存分配器?
- android - 针对 API 26 或更高版本的 firebase-dispatcher 库的任何更新?
- python - 将第二个数据框合并到第一个数据框
- javascript - how to combine window.location.href and DOMContentLoaded
- git - 从远程仓库克隆写入 git 目标文件
- c - 在 Linux 上保护 Malloc
- jsf - primefaces 数据表中的重复标题