[英]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.