如何动态更改角度tinymce编辑器的本地化?

时间:2017-04-19 22:49:43

标签: angularjs tinymce tinymce-4 angular-ui-tinymce

我正在使用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>

刷新页面后,编辑器的语言会发生变化。

2 个答案:

答案 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);
    }
});