【发布时间】:2017-09-07 20:02:56
【问题描述】:
我能够在我的角度组件中成功创建一个 svg。但是当尝试提取 svg html 以将其保存为 img 时,模板绑定值不会出现。
我创建了以下plunker
来证明这个问题。尝试获取ViewChild outerHtml 时,输出不包含内部文本,也不包含使用attr.x 设置的x 值
【问题讨论】:
我能够在我的角度组件中成功创建一个 svg。但是当尝试提取 svg html 以将其保存为 img 时,模板绑定值不会出现。
我创建了以下plunker
来证明这个问题。尝试获取ViewChild outerHtml 时,输出不包含内部文本,也不包含使用attr.x 设置的x 值
【问题讨论】:
我认为你应该使用ngAfterViewInit 而不是ngOnInit
export class App implements OnInit {
name:string;
boxTextX:string;
boxX: string;
num:string;
svgContent:string;
@ViewChild('graph') svg;
constructor() {
this.boxX = '45%';
this.boxTextX = '46%';
this.num = '46';
}
ngAfterViewInit() {
var svgDoc = this.svg.nativeElement;
this.svgContent = svgDoc.outerHTML;
}
}
【讨论】:
this.boxX = this.num + "%"; 是在this.svg.nativeElement.outerHTML 读取DOM 之后设置的吗?那不应该工作。 plnkr.co/edit/W8WlWOSc306vK5Nz2sg9?p=preview
this.cdRef.detectChanges(); 解决了这个问题。谢谢:)