使用 angular ui-tinymce 的多个文本区域在使用两个控制器时不显示
multiple textareas using angular ui-tinymce not displaying when using two controllers
我将 ui-tinymce 与 angular 1.5 一起使用,并在来自两个独立控制器的页面上的两个不同位置使用它。它一次只能在一个文本区域上工作。
如果我将两个文本区域移动到同一个控制器,它们会正确显示。或者,如果我删除一个 textArea,另一个显示。使 ui-tinymce 在一个页面上从两个控制器工作需要什么特别的东西吗?我正在向两个控制器中注入 ui-tincymce。
感谢
我 运行 遇到了同样的问题并确定原因是因为该指令对每个控制器的 ID 编号从 0 开始。 (参见第 8 行或周围的 angular.tinymce.js 中的 var generatedIds = 0
)。对 Angular 有更多深入了解的人可以解释为什么每个控制器都使用 "resets" 指令,但根本问题是该指令正在重用 ID。我想出的解决方法是修改 angular.tinymce.js 以替换:
attrs.$set('id', ID_ATTR + '-' + generatedIds++);
与
attrs.$set('id', ID_ATTR + '-' + String(new Date().getTime());
它并不理想,但它立即解决了我的问题。 getTime() 是自 1970 年 1 月 1 日以来的毫秒数,因此它的计数非常快(这意味着发生碰撞的可能性非常小)。如果你真的 pa运行oid 你的 JavaScript 可能 运行 足够快(或线程足够,有一天)来初始化两个 tinymce,你可以将它与 + String(Math.round(Math.random() * 100000))
之类的东西结合起来同一毫秒的编辑。
我将 ui-tinymce 与 angular 1.5 一起使用,并在来自两个独立控制器的页面上的两个不同位置使用它。它一次只能在一个文本区域上工作。
如果我将两个文本区域移动到同一个控制器,它们会正确显示。或者,如果我删除一个 textArea,另一个显示。使 ui-tinymce 在一个页面上从两个控制器工作需要什么特别的东西吗?我正在向两个控制器中注入 ui-tincymce。
感谢
我 运行 遇到了同样的问题并确定原因是因为该指令对每个控制器的 ID 编号从 0 开始。 (参见第 8 行或周围的 angular.tinymce.js 中的 var generatedIds = 0
)。对 Angular 有更多深入了解的人可以解释为什么每个控制器都使用 "resets" 指令,但根本问题是该指令正在重用 ID。我想出的解决方法是修改 angular.tinymce.js 以替换:
attrs.$set('id', ID_ATTR + '-' + generatedIds++);
与
attrs.$set('id', ID_ATTR + '-' + String(new Date().getTime());
它并不理想,但它立即解决了我的问题。 getTime() 是自 1970 年 1 月 1 日以来的毫秒数,因此它的计数非常快(这意味着发生碰撞的可能性非常小)。如果你真的 pa运行oid 你的 JavaScript 可能 运行 足够快(或线程足够,有一天)来初始化两个 tinymce,你可以将它与 + String(Math.round(Math.random() * 100000))
之类的东西结合起来同一毫秒的编辑。