2017-04-19 60 views
1

我正在使用angular-ui-tinymce tinymce ver 4.5.6 我正试图动态改变编辑器的本地化。对于本地化我使用angular-translate但是我无法做到这一点。如何动态改变角度tinymce编辑器的本地化?

我尽量做到像这样

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

你是否检查语言是否改变execCommand被执行在$ on事件? – trd3v3lop

+0

@ trd3v3lop是的,没有错误,什么都没有。 – ayZagen

回答

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); 
    } 
}); 
1

TinyMCE不支持在编辑器初始化后动态更改语言/本地化。

您可以remove()init()编辑器具有不同的语言设置,但一旦初始化该设置无法更改。

+0

谢谢你给我一个主意。 – ayZagen