我正在使用angular-ui-tinymce和tinymce ver 4.5.6 我试图动态地改变编辑器的本地化。对于本地化我使用angular-translate但是我无法做到。
我试着像这样实现它
JS
var tinymce=null;
vm.tinymceOptions = {
setup: function(editor) {
tinymce = editor;
},
content_css: "vendor/tinymce/angular-ui-tinymce/skins/lightgray/content.min.css",
language: $translate.proposedLanguage(),
//more options here
}
//To get localization change
$rootScope.$on('$translateChangeSuccess', function () {
if(tinymce!=null)
tinymce.execCommand('mceRepaint'); //This doesn't reflect any changes
});
这是 HTML :
<form method="post" ng-show="vm.editMode">
<textarea ui-tinymce="vm.tinymceOptions" ng-model="vm.editorContent"></textarea>
</form>
刷新页面后,编辑器的语言会发生变化。
答案 0 :(得分:1)
初始化编辑器后,TinyMCE不支持动态更改语言/本地化。
您可以使用不同的语言设置remove()
和init()
编辑器,但初始化后该设置无法更改。
答案 1 :(得分:1)
这就是我解决它的方法。
$rootScope.$on('$translateChangeSuccess', function () {
if(tinymce!=null){
vm.tinymceOptions.language=$translate.proposedLanguage();
tinymce.editorManager.editors = [];
tinymce.editorManager.createEditor("ui-tinymce-1",vm.tinymceOptions);
tinymce.init(vm.tinymceOptions);
}
});