我有一个指令在其 LinkingFunction
中创建一个富文本编辑器。我用于富文本编辑器的小指令可以在 https://github.com/angular-ui/ui-tinymce/blob/master/src/tinymce.js 找到。 .
我需要用另一个指令扩展此指令,这将允许我配置默认选项并访问由前一个指令创建的元素。
如果可能的话,我想在不 fork 原始ui-tinymce
的情况下做到这一点指令(链接到上面)。该指令有两个属性:
-
uiTinymceConfig
我需要能够在该指令的LinkingFunction
之前访问和配置它运行(在选项传递给 TinyMCE 之前) -
tinyInstance
我需要在通过该指令创建它后对其进行操作
我对 extending directives 进行了大量研究,以及 "Directive Definition Object" 可用的不同属性,如link
, pre-link
, post-link
, compile
,和controller
。我已经尝试使用其中一些方法在两个指令之间共享属性,但我还没有找到适合我的需求的解决方案(见上文)。
如果不这样做就无法实现所需的功能,我很乐意 fork 这个原始指令代码。
最佳答案
所以我为你做了一些调查,并得出了 this Plnkr .
这将允许您覆盖为注入(inject)提供的值 - 请注意,您可以在依赖于子模块的模块中执行此操作,因此您可以为依赖于子模块的不同模块提供不同的配置,这将用于ui-tinymce 指令。
使用类似的原理,您应该能够通过简单地覆盖它来编辑 uiTinymceConfig 的配置值。你甚至可以做this如果您愿意,可以在基本模块中重写它。
如果您想在实例化后编辑实例本身,只需使用 ID 属性并直接在代码中的任何位置调用 tinymce.get('#IDattribute')
即可访问它。
关于angularjs - AngularJS 中的扩展指令(在链接之前和之后共享属性),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17106902/