【发布时间】:2014-08-20 06:09:54
【问题描述】:
背景:
我正在使用自定义 CMS,但我对代码库的访问权限有限。因此,在某些情况下,我计划使用 JavaScript 进行一些 DOM 操作。
问题:
我有一个容器指令,并且容器有普通的旧 HTML 项,但我无法将这些项标记为来自服务器端的指令。此外,普通的旧 HTML 项包含作为指令的子内容。
示例:
这是之前的:
DIV[container-directive]
DIV.some-item-in-html
DIV[some-directive-in-the-content]
DIV.some-item-in-html
DIV[some-directive-in-the-content]
...
这是 DOM 之后的样子:
DIV[container-directive]
DIV[container-item] <-- This is what needs to be inserted
DIV.some-item-in-html
DIV[some-directive-in-the-content]
DIV[container-item] <-- This is what needs to be inserted
DIV.some-item-in-html
DIV[some-directive-in-the-content]
...
问题:
是否有人对使用 JavaScript 在指令嵌套之间注入指令的 DOM 元素的最佳方法有建议?
一些想法:
我认为在编译之前通过 Angular 操作 DOM,但我想知道在 Angular 的框架内是否有办法做到这一点。
另一个选项来自容器指令的后链接功能,我可以将 HTML 项包装在称为“container-item”的指令元素中,然后手动 $compile 这些项。所以,我尝试了这个,但我得到了一个错误,它与内部已经包含指令的项目相关,并且包含了嵌入的内容。关于“ngTransclude”的一些事情是出乎意料的。我认为这与已经处理的内部指令有关。
【问题讨论】:
-
建议您创建一个演示来复制问题和您尝试过的代码
-
我知道你在问什么,但我并没有真正尝试修复损坏的代码。可能有几种方法可以解决上述问题。如果是这样,那么如果一个有效的解决方案非常不同,那么我的代码可能并不重要。另一方面,如果只有一种方法可以完成上述问题,那么我的代码也无关紧要,因为答案将具有可以在答案中编写的单一代码结构(大概使用相对较短的代码量),或者熟悉此事的人可以在不编写代码的情况下提出最佳方法,这将是一个有效的答案。
-
这种方法并不适合这个网站,你提到你尝试了一些不起作用的东西,所以发布那个代码。这通常是这里的工作方式
标签: javascript html angularjs dom angular-directive