저는 Isetty의 답변을 Angular 2.0의 릴리스 버전으로 적용했습니다. 이제는 사용할 수 있습니다. 릴리스 버전을 사용하는 것 외에도 innerText 대신 keyup 이벤트를 추가하고 textContent를 사용했습니다. 이는 내 애플리케이션을 더 잘 제공하기 때문입니다. 이러한 것들을 바꿀 수도 있습니다. 동적 편집과
import {Directive, ElementRef, Input, Output, EventEmitter, OnChanges} from "@angular/core";
@Directive({
selector: '[contenteditableModel]',
host: {
'(blur)': 'onEdit()',
'(keyup)': 'onEdit()'
}
})
export class ContentEditableDirective implements OnChanges {
@Input('contenteditableModel') model: any;
@Output('contenteditableModelChange') update = new EventEmitter();
constructor(
private elementRef: ElementRef
) {
console.log('ContentEditableDirective.constructor');
}
ngOnChanges(changes) {
console.log('ContentEditableDirective.ngOnChanges');
console.log(changes);
if (changes.model.isFirstChange())
this.refreshView();
}
onEdit() {
console.log('ContentEditableDirective.onEdit');
var value = this.elementRef.nativeElement.innerText
this.update.emit(value)
}
private refreshView() {
console.log('ContentEditableDirective.refreshView');
this.elementRef.nativeElement.textContent = this.model
}
}
[angle2에서 div의 contenteditable에 \ [(ngModel) \]을 어떻게 사용합니까?] (http://stackoverflow.com/questions/35378087/how-to-use-ngmodel-on-divs-contenteditable) -in-angular2) – tobek