angular - Colspan 未使用 @ViewChild 应用于 td
问题描述
我正在尝试将 colspan 动态应用于 td 元素,但它不起作用。有人知道它不起作用的原因。当我检查元素时,我看不到正在应用的 colspan
html
<td id = "LegalClassName" class="tableItem" *ngIf="c == 'Legal Class Name'">
{{f.LegalFundClassCommercialViewModel.Description }}</td>
组件代码
@ViewChild('LegalClassName') myLegalClassName: ElementRef;
addSideLetter(id) {
this.SideLetter[id] = !this.SideLetter[id];
this.myLegalClassName.nativeElement.setAttribute('colspan', 2);
}
解决方案
您需要使用模板引用语法#LegalClassName
而不是id="LegalClassName"
. 我猜这个this.myLegalClassName
变量undefined
在你的代码中?
无论如何,这段代码在我看来是反模式:您宁愿使用属性绑定的简单性,而不是自己检索 DOM 对象(除非您的实际逻辑更复杂?):
<td class="tableItem" *ngIf="c == 'Legal Class Name'" [attr.colspan]="logic_condition ? 2 : 1">
logic_condition
在有意义的情况下,您可以在组件代码中正确设置成员布尔变量的值。这样,您不必关心自己设置属性(并且如果您稍后在组件中的另一个位置更改值,您也不必手动更新它)。
推荐阅读
- java - Maven 编译 src/main/resources 中的 JAVA 文件
- java - 从 pentaho Kettle 到 Java 的自定义错误代码
- arduino - 需要使2个伺服无线移动
- c# - 通过 volatile 引用类型的值传递
- c++ - C ++何时检查异步方法的异常
- html - 如何在 Angular 2 中将 App 组件中的图像绑定到 HTML 文件
- reactjs - 从 ADFS 2016、react、ADAL.js 获取用户信息
- c++ - 默认构造函数如何知道在哪里初始化内存中数据成员的默认值
- android - 录制视频时仅录制设备声音并静音麦克风录制的声音
- python - Scapy 和 tcp syn 泛洪攻击