我正在使用角度为1.5的ui-tinymce并且在两个不同的位置使用它来自两个独立的控制器。它只适用于一个textarea。
如果我将两个textareas移动到同一个控制器,它们会正确显示。或者,如果我删除一个textArea,则另一个显示。是否有任何特殊需要使一个页面上的两个控制器的ui-tinymce工作?我正在向两个控制器注入ui-tincymce。
感谢
答案 0 :(得分:0)
我遇到了同样的问题,并确定原因是因为该指令为每个控制器启动其ID编号为0。 (参见第8行或附近的angular.tinymce.js中的var generatedIds = 0
)。有更多关于Angular的知识的人可以解释为什么指令“重置”每个控制器,但根本问题是指令重用ID。我想出的修复是修改angular.tinymce.js来替换:
attrs.$set('id', ID_ATTR + '-' + generatedIds++);
与
attrs.$set('id', ID_ATTR + '-' + String(new Date().getTime());
这不理想,但它立即解决了我的问题。 getTime()是自1970年1月1日以来的毫秒数,所以它非常快速地计算(意味着碰撞的可能性非常小)。你可以将它与像+ String(Math.round(Math.random() * 100000))
这样的东西结合起来,如果你真的很偏执,你的JavaScript可能运行得足够快(或者有一天足够的线程)来在相同的毫秒内初始化两个编辑器。