扩展AngularJS中的指令(链接前后共享属性)

扩展AngularJS中的指令(链接前后共享属性),angularjs,tinymce,angularjs-directive,angularjs-scope,Angularjs,Tinymce,Angularjs Directive,Angularjs Scope,我有一个指令,它在其链接函数中创建一个富文本编辑器。我在富文本编辑器中使用的小指令可以在中找到 我需要用另一个指令扩展这个指令,这将允许我配置默认选项并访问由上一个指令创建的元素 如果可能的话,我希望这样做时不需要分叉原始的ui-tinymce指令(链接到上面)。本指令中有两个属性: uiTinymceConfig在运行此指令的LinkingFunction之前(在将选项传递给TinyMCE之前),我需要能够访问和配置它 tinyInstance此指令创建后需要对其进行操作 我已经做了大量的

我有一个指令,它在其
链接函数中创建一个富文本编辑器。我在富文本编辑器中使用的小指令可以在中找到

我需要用另一个指令扩展这个指令,这将允许我配置默认选项并访问由上一个指令创建的元素

如果可能的话,我希望这样做时不需要分叉原始的
ui-tinymce
指令(链接到上面)。本指令中有两个属性:

  • uiTinymceConfig
    在运行此指令的
    LinkingFunction
    之前(在将选项传递给TinyMCE之前),我需要能够访问和配置它
  • tinyInstance
    此指令创建后需要对其进行操作
我已经做了大量的研究,以及对可用的不同属性,例如
链接
预链接
后链接
编译
,以及
控制器
。我已经尝试过使用其中一些方法在两个指令之间共享属性,但是我还没有找到一个适合我需要的解决方案(如上所述)


如果不这样做就无法实现所需的功能,我很乐意使用这个原始指令代码。

因此我为您研究了一下,并提出了一个解决方案

这将允许您覆盖为注入提供的值-注意,您可以在依赖于子模块的模块中执行此操作,因此您可以为依赖于子模块的不同模块提供不同的配置,这将用于ui tinymce指令

使用类似的原则,您应该能够通过简单地重写uiTinymceConfig来编辑它的配置值。如果愿意,您甚至可以在基本模块中执行并覆盖它


如果要在实例化后编辑实例本身,只需使用ID属性并直接在代码中的任意位置调用
tinymce.get(“#IDattribute”)
即可访问它。

关于实例化后访问实例的快速说明:我在第二个指令中尝试了
tinymce.get(attrs.ID)
,但问题是在
ui tinymce
指令设置ID属性之前调用了我的自定义指令的
LinkingFunction
。我只是在元素上链接指令,因此,例如:
这可能不是最理想的,但可能会在带有该指令的每个元素上放置ID属性?这样,它将由您而不是指令来修复-例如,
我认为我可以在我的第二个指令中只执行
tinymce.get(attrs.id)
,因为这是在原始
ui tinymce
指令之后运行的。我不确定这是否只是因为指令的定义顺序-也许我应该在指令定义对象中的第二个指令上加一个
优先级
。实际上,这不起作用,因为我必须等待
ui tinymce
指令运行
tinyInstance.setContent
,然后才能获取tinymce实例,这在
$render
中发生。