我正在尝试使用Renderer在FRIDAY
的{{1}}中添加css类,但它从未应用过。
这是我的代码。
md-row

答案 0 :(得分:0)
是角度变化检测器。 我在复选框选择函数中添加了删除类函数,以便在检查时清除以前的css类,但angular检测到更改并在每次更改时触发此函数,如果我在上下文单击时添加css类,则在上下文中应用一次单击事件,但是当角度检测发生变化时,它会从复选框功能中删除。
复选框功能中的 我添加了这一行
$('md-row').removeClass('selected')
<md-checkbox color="primary"
(click)="$event.stopPropagation()"
(change)="$event ? selection.toggle(row.id) : null"
[checked]="selection.isSelected(row.id)">
</md-checkbox>
每次角度变化检测器运行时都会触发remove类,所以我在上下文单击后立即添加类,然后删除。我删除了这一行$('md-row').removeClass('selected')
并重构了这个:
this.selection.onChange.takeUntil(this.unsubscribe$).subscribe(d => {
if (this.selection.selected.length > 0) {
// clean onContext css classes.
let elems = document.getElementsByTagName('md-row');
for (let i = 0, len = elems.length; i < len; i++) {
let classes = elems[i].classList;
if (classes.contains('selected'))
classes.remove('selected');
}
}
});