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

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

所以我的问题是,每次用户访问部分代码时,如何使tinyMce初始化代码生效?

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

这是我的initialMCE代码,它位于部分视图的控制器中:

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

希望这会有所帮助

上一篇:php – UTF-8使用Internet Explorer%u20AC编码到€


下一篇:javascript – TinyMCE:从弹出窗口中检索信息