コーデックミラーを角度2(タイプスクリプト)にリンクしようとしています。 今、スクリプトファイルを動的にロードしてテキスト領域をフォーマットするcodeareaカスタムディレクティブを使用してCodeEditorを表示できます。Angular2 Componentのcodemirror text areaの値にアクセスするには?
私は値を取得できません、ユーザーはテキスト領域に入力し、NgModel、valueなどを試しました。codemirrorがtextareaを削除していて、再度挿入すると、エラーが発生する可能性があります。
私はonchangeイベントハンドラとkeyupイベントハンドラを使用しようとしましたが、何かがテキストエリアに入力されたときに繰り返し呼び出されています。そうではありません。ここで
は、コードエリアコンポーネントのコードです:ここで
import {Component, AfterViewChecked,AfterViewInit} from 'angular2/core';
@Component({
selector: 'code-area',
template: `
<input [(ngModel)]="ic_code">
<textarea [(ngModel)]="ic_code" id='problem2' name='problem2' rows='10' cols='80'>
</textarea>
<div>
<textarea [(ngModel)]="ic_code" id='problem1' name='problem2' rows='10' cols='80'>
int main(){
}
</textarea>
</div>
<button (click)="submit_clicked()">Submit</button>
<input [(ngModel)]="ic_code">
`
})
export class CodeArea implements AfterViewInit,AfterViewChecked{
public ic_code;
public ic_code2;
public ic_codediv;
constructor(){
this.ic_code = "";
System.import('app/applycodemirror')
.then(refToLoadedScript => {
applycodestyle();
});
}
ngAfterViewInit(){
console.log("AFter view init called in CodeArea");
}
ngAfterViewChecked(){
}
onChange(){
//This is being repeatedly called
}
submit_clicked() {
//I need the code here ,when user clicks on submit
}
onKey(event: any) {
console.log(event.target.value+' ');
}
}
は、外部jsのは、私は少し違った、それを使用しますが、多分それはあなたを助ける
function applycodestyle(){
if(document.getElementById("problem1") != null){
console.log("Problem 1 present");
var cEditor = CodeMirror.fromTextArea(document.getElementById("problem1"), {
lineNumbers: true,
matchBrackets: true,
mode: "text/x-csrc",
});
}else{
console.log("Problem 1 null");
}
}
こんにちは、あなたは、elementrefをどのように設定したのかを説明した小規模なコードサンプルをplunkerに投稿できますか?使用した2番目のコードスニペットについて説明できますか? – abhirulz
プランナーが時間を浪費することになります、ごめんなさい。 [elementRef](https://angular.io/docs/js/latest/api/core/ElementRef-class。html)は、angleのサービスで、コンポーネントのDOMをnativeElementプロパティで取得できるようにします。 nativeElementはDOM要素であり、すべての機能を備えています。例を使用してください。 querySelectorメソッドを使用して、CodeMirrorをトリガーするDOM要素を取得します。 約秒コードスニッパー。コードミラーインスタンスにはイベントリスナーがあります。それをon()でアクティブにします。そこにあなたはdocと価値を取ることができるエディタにアクセスできます。 – kit
CodeMirrorをインポートしようとしていますが、CodeMirrorが利用できなくなるため、Dosent Typescriptはエラーをスローします。 – abhirulz