Angular 2动态html
我已经在angular 2视图中创建了一个表,我想动态绑定html或angular组件Angular 2动态html,angular,angular2-template,angular2-components,angular2-compiler,Angular,Angular2 Template,Angular2 Components,Angular2 Compiler,我已经在angular 2视图中创建了一个表,我想动态绑定html或angular组件 <tbody> <tr *ngFor="let hHeader of hHeaders;let x=index"> <td class="hour"><span>{{hHeader}}</span></td> <td *ngFor="let vHeader of vHeaders;let
<tbody>
<tr *ngFor="let hHeader of hHeaders;let x=index">
<td class="hour"><span>{{hHeader}}</span></td>
<td *ngFor="let vHeader of vHeaders;let y=index" class="hour " [contextMenu]="basicMenu " [contextMenuSubject]="{t:hHeader,d:vHeader,x:x,y:y} ">
<div #values [class.cell]="cell" id="cell-{{x}}-{{y}}" style="width:100%; height: 100%"></div>
</td>
</tr>
</tbody>
{{hHeader}}
我可以识别组件中的每个单元
for (let i = 0; i < cells.length; ++i) {
if (cells[i].nativeElement.id == 'cell-' + event.x + '-' + event.y) {
// cells[i].nativeElement.style.backgroundColor = '#5789D8';
cells[i].nativeElement.innerHTML = '<div class="drag" dnd-draggable [dragEnabled]="true">Drag me</div>'
console.log(cells[i]);
}
}
for(设i=0;i
但我不能像这样绑定html或组件
<div class="drag" dnd-draggable [dragEnabled]="true">Drag me</div>
拖动我
如果您只是想像听起来那样将html绑定到td,那么您可以使用innerHTML属性
<td ...[innerHTML]="whateverValue"...>
我更喜欢使用管道 我在论坛上找到了这个
要实现,只需使用
您到底在寻找什么?我想添加html或angular 2组件,以避免像这样编程。DOM不是一个大字符串,您可以构造它并将其固定在某个地方。即使这样做,也不会解释大型innerHTML字符串中的角度逻辑。在模板中编写HTML。@我想将HTML绑定到torazaburo。你的建议是什么?我认为nativeElement.innerHTML='Drag me'
这一个不是通过编译器编译的。它作为字符串。我使用了一些npm软件包。他们没有工作
import {Pipe, PipeTransform} from '@angular/core';
import {DomSanitizer, SafeHtml, SafeStyle, SafeScript, SafeUrl, SafeResourceUrl } from '@angular/platform-browser';
@Pipe({
name: 'safe'
})
export class SafePipe implements PipeTransform {
constructor(protected _sanitizer: DomSanitizer) {
}
public transform(value: string, type: string = 'html'): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl {
switch (type) {
case 'html': return this._sanitizer.bypassSecurityTrustHtml(value);
case 'style': return this._sanitizer.bypassSecurityTrustStyle(value);
case 'script': return this._sanitizer.bypassSecurityTrustScript(value);
case 'url': return this._sanitizer.bypassSecurityTrustUrl(value);
case 'resourceUrl': return this._sanitizer.bypassSecurityTrustResourceUrl(value);
default: throw new Error(`Invalid safe type specified: ${type}`);
}
}
}