问题标签 [angularjs-ng-transclude]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
angularjs - 如何在 table tr 标签上使用 transclude
我必须使用嵌入在指令中注入内容,该指令应用于页面上的 tbody 元素。我正在尝试将 transclude 应用到指令模板的 tr 元素上,但是浏览器现在以某种方式在 tr 元素上加倍 - 它必须在 transclude 运行之前自动将每个 td 列表包装到 tr 中。我怎样才能防止这种情况发生?
请注意:在这种情况下,我必须将其作为表格工作,因此请不要建议用 div 或其他元素替换表格。
模板:
包括文件:
js:
结果:
这怎么发生的?为什么有两个标签相互嵌套?
angularjs - 什么时候在指令设置的编译/链接过程中发生嵌入?
我正在编写一个使用嵌入的自定义指令。我需要在转入发生后对转入的 DOM 内容进行修改....我是要在后链接中还是在控制器中或...链接中进行此操作...?我不知道嵌入在这些事情发生的顺序中的位置,所以我不知道如何确保在嵌入发生后执行我的 JS。
javascript - 嵌入似乎放弃了控制器
假设我有以下两个指令:
以及以下html:
当指令加载转换按预期发生时,将控制器设置为我的 apiDirective 控制器。但是在 consumerFunction 中,控制器始终是null
. 为什么?我怀疑它与第二次编译有关?
完全删除第二个编译会导致指令无法正常呈现。为什么?
发生了什么,如何在不手动将属性级别控制器内联到指令上的情况下修复它?
javascript - 父指令中的 angularjs 函数未从嵌入的 html 调用
我使用 angualrjs 指令创建了一个类似功能的下拉列表,该指令在某种程度上起作用,但不是以我预期的正确方式。
以下是我面临的问题。
- 下拉列表对齐对于静态是正确的,但对于动态不正确
- 我无法选择任何选项列表,因为
getValue
我在父指令中定义的函数没有从 trancluded 指令中调用
谁能告诉我一些解决方案
我的代码如下
javascript - 使用每次不同的 transclude 重复指令
在我的角度应用程序中,我有几个面板具有共享结构,相同的 html。
在面板内部,内容和行为发生了变化,基本上每个都是一个单独的指令,我们称它们为面板内容。
这是我认为最佳的解决方案,但我有一些架构上的疑问。
由于我有指令(其中包含真集):
它的模板如下所示:
我必须重复面板
这一切都很好,但是在<panel-content>
我应该展示的每次迭代中“选择”的合理好方法是什么?
可以说我有一个panel.id
我可以使用的。
我注意到我可以通过多种方式实现它,我可以<panel-content>
使用面板 ID 在视图内进行 ng-switch,我可以设置 templateUrl 具有动态部分并链接到不同的 URL,具体取决于panel.id
.
但出于某种原因,我确信我错过了一些更好更直接的东西?
请不要说这个架构不是一成不变的,如果有其他结构更适合我的需求,请告诉我。
那么,问题又来了,我该如何选择?或者更确切地说,谁负责选择<panel-content>
应该显示的内容。
javascript - 在AngularJS中将属性指令动态添加到transclude指令
我正在尝试将属性指令动态添加到 transclude 指令。
例如,模板将按如下方式开始:
事件发生后(例如单击),它将添加一个属性指令,例如:
我正在使用以下 JavaScript 来执行此操作:
但是,这会导致:
我创建了一个精简的演示,展示了我在 Plunker 中尝试做的事情,以展示我是如何做到的:
http://plnkr.co/edit/xIKwJqKFbvs6DVnJrDUh?p=preview
任何帮助,将不胜感激。谢谢。
更新:
根据要求,我创建了一个后续问题,询问是否有更好的方法来实现我想要实现的目标:
angularjs - 如何将函数从控制器(角度 1.3)传递到嵌入范围?
我创建了一个简单的可重用集合容器作为具有隔离范围的指令,atransclude
选项设置为 true。
});
和一个列表视图指令,我想从控制器传递一个函数来处理对列表项的点击
我的 html 块看起来如下:
但是当我单击链接时,我得到一个参考错误,说action
没有定义。问题是,如何将一个函数从控制器传递给这个指令?据我了解,嵌入范围是孤立范围的孩子,这是我无法克服的障碍!
这是一个Plunkr。
angularjs - 如何在 Angular 指令中访问 HTML(转入)
我正在使用 angular-ui。我正在尝试减少 html 编码我使用角度指令制作可重用元素。我肯定错过了一些东西。我想做的是:
<modal modal-title="Some Title" button-text="Click Me">Modal Content</modal>
我希望它输出模态和按钮,因此我可以使用这个自定义元素,而不是一遍又一遍地为模态添加所有标记。它似乎正在工作,只是我无法终生弄清楚如何获取元素内部的内容。这是我正在做的基础知识:
这是模板(partials/modal.html)
如何将元素的内容放入 mCtrl.content?它的其余部分按预期工作,我只是错过了一些东西。谢谢!
编辑:看来我需要使用嵌入,所以这就是我想要做的:
<div class="modal-body"><ng-transclude></ng-transclude></div>
但是当我打开模式时出现这种错误:
[ngTransclude:orphan] Illegal use of ngTransclude directive in the template! No parent directive that requires a transclusion found. Element: <ng-transclude>
javascript - AngularJS:在编译之前获取指令内容
我想在编译之前获取指令的 html 内容。
这是一个例子:
我想获取所有内容my-directive
并将其从中删除并在其他地方使用它(不在它自己的指令内)
所以换句话说,我想访问指令 DOM,做一些更改,然后编译它。