是否可以动态生成angular-ui tinymce编辑器的选项?

时间:2015-11-12 18:54:30

标签: javascript angularjs tinymce

我通过ui-tinymce Angular指令使用了tinymce编辑器。

<textarea ui-tinymce="tinymceOptions" ng-model="email.body"></textarea>

我无法初始化编辑器,并将content_css选项设置为从XHR请求获取的值,因为在XHR请求的回调之前调用该指令的link函数。因此,选项不会传递给指令。

Template.get({ id: $routeParams.id }, function(response) {
  $scope.template = response.attributes;

  $scope.tinymceOptions = {
      inline: false,
      plugins : 'code importcss preview code',
      skin: 'lightgray',
      theme : 'modern',
      content_css: $scope.template.content_css
    };
});

如果我在初始化选项后广播$tinymce:refresh事件,编辑器会使用新选项重新初始化,但旧编辑器不会被删除。

我对角度指令几乎没有经验,是否可以观察选项中的变化并在编辑器中反映出来?

1 个答案:

答案 0 :(得分:0)

您可以等待异步加载的选项,只有在获得后才显示编辑器。概念证明:

查看:

<div ng-controller="MyCtrl">
    <div ng-if="!tinymceOptions">Please wait, we're initliazing editor for you!</div>
    <div ng-if="tinymceOptions">
        <textarea ui-tinymce="tinymceOptions" ng-model="email.body"></textarea>
    </div>
</div>

和控制器:

module.controller('MyCtrl', function($scope) {
    Template.get({ id: $routeParams.id }, function(response) {
        // your code here
    });
});