我正在創建一個使用CodeMirror作爲源代碼編輯器的Angular 2應用程序。我想爲它添加一個線構件,這要求我爲CodeMirror提供一個DOM節點。我想在這個小部件中放置一些依賴應用程序數據的複雜邏輯,所以它需要是一個Angular組件,但是我無法弄清楚如何在DOM節點中渲染一個Angular元素(或者它是否甚至可能)。通常我會用ViewContainerRef
這樣做,但在這種情況下不起作用。在DOM節點中呈現角度2組件
有什麼辦法可以使用Angular 2來實現這個功能嗎?
我正在創建一個使用CodeMirror作爲源代碼編輯器的Angular 2應用程序。我想爲它添加一個線構件,這要求我爲CodeMirror提供一個DOM節點。我想在這個小部件中放置一些依賴應用程序數據的複雜邏輯,所以它需要是一個Angular組件,但是我無法弄清楚如何在DOM節點中渲染一個Angular元素(或者它是否甚至可能)。通常我會用ViewContainerRef
這樣做,但在這種情況下不起作用。在DOM節點中呈現角度2組件
有什麼辦法可以使用Angular 2來實現這個功能嗎?
你總是可以使用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!
}
}
這就是CodeMirror元素,我使用CodeMirror.Editor實例上的addLineWidget方法討論了CodeMirror中的一個小部件 – Dirk
你找到了解決方案嗎?我有同樣的問題。 – yl2015