簡體   English   中英

導航后設置angular-ui-tinymce編輯器內容

[英]set angular-ui-tinymce editor content after navigation

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

我遇到了一個我無法解決的問題。

在第一頁加載時,內容通過ng-model加載到編輯器中。 然后我導航到另一個狀態,然后使用編輯器導航回狀態。 該值仍然存在於作用域(我已經檢查過)但內容沒有出現在編輯器中由於某種原因我無法想象...

這是具有指令屬性的textarea:

<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甚至都沒有運行。 有什么理由嗎?

更新
我不認為模型。$ ​​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',

設置優先級並不能真正解決問題。

唯一對我ngModel.$render = function()是在ngModel.$render = function()之前添加以下代碼ngModel.$render = function()

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM