![](/img/trans.png)
[英]Loading partial with Angular directives not rendering the second time the view is loaded
[英]tinyMce not initialized upon second visit to angular partial view
我正在使用tinyMce(原生的,而不是角度ui指令)和我的角度應用程序。 tinyMce轉換為html編輯器的文本區域位於局部視圖中(我使用的是有角度的路徑)。 問題是,應用程序第一次訪問局部視圖時一切正常,但是下次用戶選擇此視圖時,文本不會轉換為tinyMce編輯器。
所以我的問題是每次用戶訪問部分時如何使用tinyMce初始化代碼?
我看到了類似的問題,但沒有理解任何解決方案....
這是我的init tinyMCE代碼,它位於局部視圖的控制器中:
angular.module('sam').controller('groupMailController', ['$http', '$log', '$routeParams', 'User', function($http, $log, $routeParams, User) {
tmp = this;
//a factory which passes paramteres cross controllers
this.user = User;
//get list of building objects
this.availableBuildings = _.values(this.user.buildings);
$log.log('init meee !!');
tinymce.init(
{selector:'textarea',
directionality : 'rtl',
plugins: ["advlist autolink lists link image charmap print preview anchor",
"searchreplace visualblocks code fullscreen",
"insertdatetime media table contextmenu paste directionality"],
toolbar: "undo redo | styleselect | bold italic | link image | alignleft aligncenter alignright | ltr rtl"});
}]);
對於那些可能遇到同樣問題的人來說,這是一個遲到的答案。 問題是,tinymce仍然保留編輯器的舊實例並再次初始化它將無法正常工作。 因此,解決方案包括在范圍銷毀事件上刪除該實例。
$scope.$on('$destroy', function() {
var tinyInstance = tinymce.get('#myTextArea');
if (tinyInstance) {
tinyInstance.remove();
tinyInstance = null;
}
});
希望這會有所幫助
您可以在調用init()之前刪除當前的活動編輯器。
if (tinyMCE.activeEditor != null)
tinymce.EditorManager.execCommand('mceRemoveEditor', true, 'myTextArea');
tinymce.init({
selector: "#myTextArea"
});
或者您可以使用TinyMCE Angular插件。 這是信息: https : //github.com/angular-ui/ui-tinymce
在路由時更改textarea的id,強制tiny-mce angular模塊刷新並重新創建編輯器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.