2017-03-16 71 views
0

我正在創建一個使用CodeMirror作爲源代碼編輯器的Angular 2應用程序。我想爲它添加一個線構件,這要求我爲CodeMirror提供一個DOM節點。我想在這個小部件中放置一些依賴應用程序數據的複雜邏輯,所以它需要是一個Angular組件,但是我無法弄清楚如何在DOM節點中渲染一個Angular元素(或者它是否甚至可能)。通常我會用ViewContainerRef這樣做,但在這種情況下不起作用。在DOM節點中呈現角度2組件

有什麼辦法可以使用Angular 2來實現這個功能嗎?

+0

你找到了解決方案嗎?我有同樣的問題。 – yl2015

回答

0

你總是可以使用ng2-codemirror(https://www.npmjs.com/package/ng2-codemirror),它已經爲你處理。

在anycase,如果你需要從一個角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! 
    } 
} 
+0

這就是CodeMirror元素,我使用CodeMirror.Editor實例上的addLineWidget方法討論了CodeMirror中的一個小部件 – Dirk