【问题标题】:set angular-ui-tinymce editor content after navigation导航后设置 angular-ui-tinymce 编辑器内容
【发布时间】:2013-11-19 11:14:43
【问题描述】:

我正在使用 angular-ui-tinymce(最新版本 0.0.4,https://github.com/angular-ui/ui-tinymce/blob/master/src/tinymce.js)。

我遇到了无法解决的问题。

在第一个页面加载时,内容通过 ng-model 加载到编辑器。 然后我导航到另一个状态,然后使用编辑器导航回状态。 该值仍然存在于范围内(我已经检查过了),但由于某种原因我无法理解内容没有出现在编辑器中..

这是以指令为属性的文本区域:

<textarea rows="10" class="form-control" id="desc" ui-tinymce ng-model="valueFromScope"></textarea>

此更改发生在将 AngularJS 从 1.5 更新到 1.2.1 之后。 我认为这与 ngSanitize 有关,但我不确定..

btw angular-sanitize 和 ngSanitize 包含在应用程序中。

有什么建议吗?

更新
好像 ngModel.$render 什么也没做。

     ngModel.$render = function() {
        console.log(ngModel);
        tinyInstance = tinymce.get(attrs.id);

      if (tinyInstance) {

        tinyInstance.setContent(ngModel.$viewValue || '');
        updateView();
      }
    };

没有任何东西被打印出来,甚至没有被定义,这意味着 ngModel.$render 甚至没有运行。 有什么原因吗?

更新
我不认为 model.$render 是相关的,据我了解 $render 仅在编程更改时执行,例如实际编辑文本并且有效..

还是想不通,有时显示值有时不显示。

【问题讨论】:

  • 一些代码?还有——如果你恢复到 1.5,问题就解决了吗?
  • 恢复到 1.5 会导致代码的其他部分出现太多错误:{
  • 我已经在帖子中添加了html代码。指令代码是默认的 angular-ui-tinymce 代码。
  • 似乎与 sanitize 无关,因为代码似乎没有调用 sanizite(tinymce 代码)。
  • @alonisser 似乎该指令试图在服务器响应该值之前设置编辑器值。虽然它很奇怪,1. 因为它以前工作过,2. 返回值时编辑器中没有任何变化..

标签: javascript angularjs tinymce angular-ui


【解决方案1】:

问题解决了! - 现在..

感谢@alonisser,我找到了解决方案。

据我了解,出现问题是因为 angularjs 指令的优先级发生了变化。

阅读以下内容: http://iwang.github.io/html/angular/angularjs/2013/11/04/ngmodel-render-cannot-be-overriden-in-angular-rc3.html

简单的解决方法是在指令中添加优先级定义

return {
  priority: 10,
  require: 'ngModel',

【讨论】:

    【解决方案2】:

    设置优先级并不能真正解决问题。

    唯一对我有用的是在 ngModel.$render = function() 之前添加以下代码

        var stopWatch = scope.$watch(attrs.ngModel, function(newValue){
            if (!tinyInstance){
                tinyInstance = tinymce.get(attrs.id);
            }
    
            if (tinyInstance) {
                tinyInstance.setContent(newValue);
                stopWatch();
            }
        });

    【讨论】:

      猜你喜欢
      • 2012-04-06
      • 2017-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多