Javascript tinyMce在第二次访问角度局部视图时未初始化

Javascript tinyMce在第二次访问角度局部视图时未初始化,javascript,angularjs,tinymce,angular-routing,Javascript,Angularjs,Tinymce,Angular Routing,我在angular应用程序中使用tinyMce(本机的,不是angular ui指令)。tinyMce转换为html编辑器的文本区域位于局部视图中(我使用的是角度路由)。问题是,应用程序第一次访问部分视图时,一切都正常,但下次用户选择此视图时,文本不会转换为tinyMce编辑器 所以我的问题是,如何让tinyMce初始化代码在用户每次访问partial时命中 我看到了类似的问题,但不理解任何解决方案 以下是我的init tinyMCE代码,它位于局部视图的控制器中: angular.module

我在angular应用程序中使用tinyMce(本机的,不是angular ui指令)。tinyMce转换为html编辑器的文本区域位于局部视图中(我使用的是角度路由)。问题是,应用程序第一次访问部分视图时,一切都正常,但下次用户选择此视图时,文本不会转换为tinyMce编辑器

所以我的问题是,如何让tinyMce初始化代码在用户每次访问partial时命中

我看到了类似的问题,但不理解任何解决方案

以下是我的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"});
}]);

可以在调用init()之前删除当前活动编辑器

也可以使用TinyMCE Angular插件。以下是信息:
对于那些可能有相同问题的人来说,这是一个迟来的答案。问题是tinymce仍然保留编辑器的旧实例,再次初始化它将不起作用。因此,解决方案包括在范围销毁事件中删除该实例

  $scope.$on('$destroy', function() {
    var tinyInstance = tinymce.get('#myTextArea');

    if (tinyInstance) {
      tinyInstance.remove();
      tinyInstance = null;
    }
});

希望这将有助于在路由时更改textarea的id,强制微型mce angular模块刷新并重新创建编辑器。

我也有同样的问题。您是否至少与您提到的其他解决方案有关联?确实如此。我需要先把旧的拿走。注意,我使用的是TinyMCE 4.5.3。要获取实例,不需要添加
#
,只需添加id,例如
tinymce.get('textAreaId')
  $scope.$on('$destroy', function() {
    var tinyInstance = tinymce.get('#myTextArea');

    if (tinyInstance) {
      tinyInstance.remove();
      tinyInstance = null;
    }
});