对于一个学校项目,我们使用 angular v4.4.6,ng2-translate 用于翻译,ngx-quill@1.6.0 用于文本编辑器。当我像这样使用占位符属性时:
<quill-editor placeholder="{{'Topic.new.quill-placeholder' | translate}}"...></quill-editor>
然后我的占位符采用当前语言的值,但是当我选择一种新语言时,我的占位符不会改变。我不知道为什么,想知道这个问题是否有解决方案?
对于一个学校项目,我们使用 angular v4.4.6,ng2-translate 用于翻译,ngx-quill@1.6.0 用于文本编辑器。当我像这样使用占位符属性时:
<quill-editor placeholder="{{'Topic.new.quill-placeholder' | translate}}"...></quill-editor>
然后我的占位符采用当前语言的值,但是当我选择一种新语言时,我的占位符不会改变。我不知道为什么,想知道这个问题是否有解决方案?
注意:到现在(7 个月后)你应该已经找到了解决方案。
但我认为你缺少的是在框中设置占位符。
<quill-editor [placeholder]="'Topic.new.quill-placeholder'|translate"...></quill-editor>
那应该可以解决上述问题。
动态更改 Quill 占位符提供的解决方案对我有用:
quill.root.dataset.placeholder = 'Your new placeholder';
在 Angular 中,您的 quill 代码可能是这样的:
let editor = this.container.nativeElement.querySelector('#editor');
this.editor = new Quill(editor, {
theme: 'snow',
placeholder: this.placeholder
});
你的占位符属性可能是这样的:
@Input()
get placeholder() {
return this._placeholder;
}
set placeholder(plh) {
this._placeholder = plh;
this.stateChanges.next();
}
public _placeholder: string;
所以你需要做的是在属性设置器中添加一些代码来更新占位符,如下所示:
set placeholder(plh) {
this._placeholder = plh;
this.stateChanges.next();
if (this.editor != null) {
this.editor.root.dataset.placeholder = this._placeholder;
}
}