Как динамически изменить локализацию углового редактора tinymce?

Я использую angular-ui-tinymce с tinymce версии 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>

После обновления страницы язык редактора меняется.


person ayZagen    schedule 19.04.2017    source источник
comment
Вы проверяли, когда выполняется execCommand с измененным языком, который находится в событии $on?   -  person trd3v3lop    schedule 20.04.2017
comment
@ trd3v3lop да, ни ошибок, ничего..   -  person ayZagen    schedule 20.04.2017


Ответы (2)


TinyMCE не поддерживает динамическую смену языка/локализации после инициализации редактора.

Вы можете remove() и init() использовать редактор с разными настройками языка, но после инициализации эту настройку нельзя будет изменить.

person Michael Fromin    schedule 20.04.2017

Вот как я это решил.

 $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);
    }
});
person ayZagen    schedule 20.04.2017