一些(高级?)棱角让我头疼。
目标是扩展所见即所得的 HTML 编辑器,以允许用户将某些角度指令插入到任意 HTML 内容中。我选择了medium-editor和它的angular-medium-editor包装器(但如果有更好的解决方案,我不同意)。
这个 Plunk显示了编辑器指令是如何实例化和激活的(使用editable
属性)。工具栏被定制为包含一个按钮,该按钮在所选文本周围添加自定义指令:<my-custom-directive class="bg-info"> ... </my-custom-directive>
. (为了演示,自定义指令将其内容包装(嵌入)在一个按钮中,该按钮在单击时会触发警报)。
我在(重新)编译编辑器的内容时遇到问题,以便编辑器内的指令编译。对于使用$compile(element.contents())(scope)
嵌入的指令,使用会引发 ngTransclusion:orphan 错误。link
(我知道这是由于在调用编辑器函数时 Angular 已经进行了嵌入。)
我无法将所有潜在的自定义指令重构为不使用嵌入。
我可以使用什么模式来成功编译任意编辑器内容(可能包括许多不同的指令),理想情况下,无论何时该内容发生变化,或者至少在编辑完成时?这是合理使用 $compile 的“边缘案例”之一吗?如果是这样,我该如何使用它?