gpt4 book ai didi

typescript - angular2 所见即所得的 tinymce 实现和 2 向绑定(bind)

转载 作者:太空狗 更新时间:2023-10-29 17:24:53 24 4
gpt4 key购买 nike

您好,我正在尝试将 tinymce 实现到一个小论坛的 angular 2 组件中,以创建一个新线程。我希望将 textarea (tinymce) 的内容双向绑定(bind)到组件内的变量。到目前为止,提交按钮有效,但 keyup 事件无效。

export class ForumNewThreadComponent implements OnInit{

constructor(){}
ngOnInit():any {
tinymce.init(
{
selector: ".tinyMCE",
})
}

text:string;
submit(){
this.text = tinymce.activeEditor.getContent();
}
getTinymceContent(){
this.text = tinymce.activeEditor.getContent();
}
}

并查看

<div class="thread-body">
{{getValue}}
<textarea class="tinyMCE" style="height:300px" (keyup)="getTinymceContent()">

</textarea>
<button class="btn btn-primary" (click)="submit()">Submit</button>
</div>

最佳答案

我会为此实现一个自定义值访问器:

const TINY_MCE_VALUE_ACCESSOR = new Provider(
NG_VALUE_ACCESSOR, {useExisting: forwardRef(() => TinyMceValueAccessor), multi: true});

@Directive({
selector: 'textarea[tinymce]',
host: { '(keyup)': 'doOnChange($event.target)' },
providers: [ TINY_MCE_VALUE_ACCESSOR ]
})
export class DateValueAccessor extends DefaultValueAccessor {
@Input()
tinymce:any;

onChange = (_) => {};
onTouched = () => {};

writeValue(value:any):void {
if (value!=null) {
super.writeValue(value.toString());
}
}

doOnChange(elt) {
this.onChange(this.tinymce.activeEditor.getContent());
}
}

我会这样使用它:

<textarea [tinymce]="tinymce" style="height:300px" [(ngModel)]="text">

</textarea>

在你的组件类中:

@Component({
(...)
directives: [ DateValueAccessor ]
})
export class ForumNewThreadComponent implements OnInit{
constructor(){}
ngOnInit():any {
tinymce.init({
selector: "[tinymce]"
})
}

text:string;
}

关于typescript - angular2 所见即所得的 tinymce 实现和 2 向绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36841335/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com