2017-10-30 13 views
4

上の選択を設定します。角度2 - 私はこの選択持っelementRef

let selection = window.getSelection(); 

そして、このelementRefを:

@ViewChild('contentEditable') public el: ElementRef; 

そして、例えば、このテキストは、のcontentEditable elementRef内にある:

これは一部のテキストです

私は 'some'を選択してから選択を失いましたが、getSelection()を使ってselectionプロパティに保存しました。 elementRefに戻すにはどうすればいいですか?

答えて

1

私は入力をcontentEditableと混同していました。 contentEditableでは範囲を使用して選択範囲を取得し、選択範囲を設定する必要があります。

let range = document.createRange(); 
range = window.getSelection().getRangeAt(0); 
this.rangeClone = range.cloneRange(); 

これはJavascriptでの選択と範囲オブジェクトの組み合わせを使用しています。選択を取得するには

。選択範囲を設定するには

Selection

Range

@ViewChild('contentEditable') public el: ElementRef; 
:This.elはこのようになります

this.el.nativeElement.focus(); 
const sel = window.getSelection(); 
sel.removeAllRanges(); 
sel.addRange(this.rangeClone); 

詳細情報については、ドキュメントを読んで

関連する問題