我正在使用 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 只在程序更改时执行,例如实际编辑文本并且有效..

我仍然无法弄清楚,有时显示值有时不显示。

最佳答案

问题解决了! - 现在..

感谢@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',

10-05 21:07
查看更多