Angular 2:ContenteditableModel:双向数据绑定

时间:2017-06-04 18:22:26

标签: angular data-binding contenteditable

我能够从contenteditableModel指令发出一个事件但是我无法接收数据'@ Input('contenteditableModel')模型:any;'我一直未定义。

contenteditableModelChange工作正常,但不是contenteditableModel

我更新数据的方法是更新this.elementRef.nativeElement.textContent,因为我无法弄清楚如何使用[innerHTML]

该指令基于on this guy code: 但重建角度2.0。

let calcResults = [for year in 1..int CoffeMachine.Lifetime -> calculation year]

顺便说一句,如果有人建议使用textContent属性(而不是value)和输入事件来设置我自己的等效属性和事件数据绑定,我已经在这个plunker上尝试了它,并且在IE上存在游标问题, Firefox和Safari设置为0

http://plnkr.co/edit/KCeKTPu8dJI0O1nVMPfb?p=preview

1 个答案:

答案 0 :(得分:2)

我将ngOnChanges更改为:

ngOnChanges(changes) {
  console.log('ContentEditableDirective.ngOnChanges');
  console.log(changes);
  //if (changes.model.isFirstChange())
  this.refreshView();
} 

工作正常。

Plnkr:https://plnkr.co/edit/VW4IJvcv1xjtBKTglWXT?p=preview

根据文档:isFirstChange()告诉我们是否第一次分配值。根据您的代码,您只想在第一次更改时更新文本。哪个错了。我认为我们根本不需要担心它。