【问题标题】:Render angular 2 component in DOM node在 DOM 节点中渲染 angular 2 组件
【发布时间】:2017-03-16 21:17:29
【问题描述】:

我正在创建一个使用 CodeMirror 作为源代码编辑器的 Angular 2 应用程序。我想向它添加一个线小部件,这需要我向 CodeMirror 提供一个 DOM 节点。我想在这个小部件中放置一些依赖于应用程序数据的复杂逻辑,所以它需要是一个 Angular 组件,但是我不知道如何在 DOM 节点中呈现 Angular 元素(或者它是否是甚至可能)。通常我会使用ViewContainerRef,但在这种情况下不起作用。

有什么方法可以使用 Angular 2 实现这一点吗?

【问题讨论】:

  • 您找到解决方案了吗?我也有同样的问题。

标签: angularjs typescript codemirror


【解决方案1】:

您始终可以使用 ng2-codemirror (https://www.npmjs.com/package/ng2-codemirror),它已经为您解决了这个问题。

无论如何,如果您需要从 Angular 2 组件中获取 DOM 节点,您可以执行以下操作:

<div #element>
</div>

然后,在您的打字稿文件上,您可以:

import * as ng from "angular2/core";

export class MyComponent {
   @ng.ViewChild("element", {read: ng.ElementRef})
   element: ng.ElementRef;

   ngAfterViewInit(){
      this.element.nativeElement; // you dom node is here!
   }
}

【讨论】:

  • 这只是 CodeMirror 元素,我说的是 CodeMirror 中使用 CodeMirror.Editor 实例上的 addLineWidget 方法的小部件
猜你喜欢
  • 1970-01-01
  • 2017-08-03
  • 1970-01-01
  • 2017-01-25
  • 1970-01-01
  • 2018-01-13
  • 2020-11-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多