我想做的只是在元素上附加一些html.

使用JavaScript,我将执行以下操作:

var d1 = document.getElementsByClassName('one');
d1.insertAdjacentHTML('beforeend', '<div class="two">two</div>');

如何使用typescript/angular2、RC5获得相同的结果?

EDIT

类为.one的元素是由外部js生成的,我无法修改它.

推荐答案

1.

<div class="one" [innerHtml]="htmlToAdd"></div>
this.htmlToAdd = '<div class="two">two</div>';

See also In RC.1 some styles can't be added using binding syntax

  1. 或者
<div class="one" #one></div>
@ViewChild('one') d1:ElementRef;

ngAfterViewInit() {
  d1.nativeElement.insertAdjacentHTML('beforeend', '<div class="two">two</div>');
}

或者为了防止直接访问DOM:

constructor(private renderer:Renderer) {}

@ViewChild('one') d1:ElementRef;

ngAfterViewInit() {
  this.renderer.invokeElementMethod(this.d1.nativeElement', 'insertAdjacentHTML' ['beforeend', '<div class="two">two</div>']);
}
    3.
constructor(private elementRef:ElementRef) {}

ngAfterViewInit() {
  var d1 = this.elementRef.nativeElement.querySelector('.one');
  d1.insertAdjacentHTML('beforeend', '<div class="two">two</div>');
}

Typescript相关问答推荐

类型ElementTypes不可分配给类型ElementTypes.word'

使用前的组件渲染状态更新

如果我有对象的Typescript类型,如何使用其值的类型?

Angular 过滤器形式基于某些条件的数组控制

在TypeScript中使用泛型的灵活返回值类型

SortKey类型不起作用,尽管它使用的单个类型工作正常<>'

TypeScript Page Routing在单击时不呈现子页面(React Router v6)

状态更新后未触发特定元素的Reaction CSS转换

Typescript泛型类型:按其嵌套属性映射记录列表

TypeScrip 5.3和5.4-对`Readonly<;[...number[],字符串]>;`的测试版处理:有什么变化?

如何从MAT-FORM-FIELD-MAT-SELECT中移除焦点?

确保对象列表在编译时在类型脚本中具有唯一键

将对象的属性转换为正确类型和位置的函数参数

类型脚本-在调用期间解析函数参数类型

打字脚本中的模块化或命名空间

我不明白使用打字脚本在模板中展开参考

打字错误TS2305:模块常量没有导出的成员

Typescript不允许在数组中使用联合类型

如何将对象的字符串文字属性用作同一对象中的键类型

参数未映射泛型返回类型