2017-04-19 89 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