问题标签 [transclusion]

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.

0 投票
0 回答
679 浏览

javascript - AngularJS:在另一个指令中时指令不起作用

当输入在 list-select-option 指令中时,我无法使输入更新模型。

但是,当我直接在视图上使用指令 cefenRadio 时,它能够根据我的需要更新模型

可能问题出在两个指令之间的模型转移上,但我找不到正确的方法来做到这一点。

有人有什么想法吗?谢谢

指令.js

索引.html

0 投票
1 回答
1128 浏览

javascript - AngularJS:指令 ng-transclude 中的 ng-repeat

嗨,我是 AngularJS 的新手,如果这是一个简单的问题,请原谅我。我有一个简单的指令,看起来像这样:

理想情况下,我希望使用 ng-repeat 生成使用 ng-transclude 插入到我的 div 中的内容。所以我有一个这样的 HTML 块:

我知道我的数据数组已正确填充在我的控制器中,因为我可以在我的开发工具中看到请求并且我已经记录了我的数据对象。但是,我的页面没有正确生成,当我检查我的页面内容时,我最终得到的结果如下:

在 ng-transclude 中使用 ng-repeat 有什么问题吗?我已经搜索过,但似乎找不到答案。谢谢!

编辑:

这是控制器:

0 投票
1 回答
386 浏览

javascript - AngularJS - 从嵌入指令范围内的函数更新父控制器范围内的变量

父控制器作用域变量如何从嵌入指令作用域的函数中更新?

我通过以下方式使用嵌入将指令嵌入到另一个指令中:

my-table 和 my-getter-button 的代码如下:

my-table模板:

my-table指示:

my-getter-button指令(带模板):

我期待scope.$parent.instance = data; // or scope.instance = data;更改父控制器scope.instance,但它没有。

0 投票
3 回答
1195 浏览

angularjs - 将 $properties 添加到 Transcluded 范围

我有一个嵌入范围的指令,如下所示:

value来自父范围的地方。

我想添加一个与控件范围交互的函数,所以我可以做这样的事情:

类似于ngRepeat将属性添加$index到行范围的方式。在我的指令中执行此操作的最简单方法是什么?

0 投票
0 回答
85 浏览

angularjs - AngularJS - 包含嵌入的嵌入?

我正在使用 Bootstrap UI 的手风琴指令。这在引擎盖下使用了嵌入。我有一些需要重复的逻辑,所以我试图创建一个包装手风琴的指令,它也使用嵌入。

这是JavaScript:

使用起来应该很简单:

假设scopeVariable在我的控制器中,我认为它的值会出现。据我所知,范围属于collapse-panel而不是外部范围。这几乎就像嵌套的嵌入指令导致了我的问题。

像这样嵌套嵌入有技巧吗?

0 投票
1 回答
558 浏览

javascript - 从 ng-messages 中提取 ng-message 密钥

我需要创建一个指令myDirective来读取其中的所有 ng-message 键,它仍然会创建一个有效的 ng-messages 元素:

指令模板:

用法:

所以在这种情况下,我想获得一组“必需”和“自定义”。问题是我不能这样做,因为当我的指令进入它自己的链接函数时,所有 ng-messsage 元素已经被隐藏(从 DOM 中删除以更准确)。如何解决这个问题?

0 投票
1 回答
1884 浏览

javascript - 包含 ng-template 的指令中的角度转换(通用确认模式)

您好,我在创建基于 angular-bootstrap 模态指令的通用确认指令时正在苦苦挣扎。

我找不到将我的内容嵌入用于模态构造的 ng-template 的方法,因为该指令没有被评估,因为它是执行时之后加载ng-transclude的一部分:ng-template$modal.open()

index.html(指令插入):

confirmPopup.html(指令模板):

confirmPopup.js(指令 JS):

如果还不够清楚,请在我等待查看“”的地方查看此PLUNKERAre you sure ? (modal #2) ,仅在单击“ open confirm modal #2”按钮时查看。

0 投票
1 回答
41 浏览

javascript - 嵌入似乎放弃了控制器

假设我有以下两个指令:

以及以下html:

当指令加载转换按预期发生时,将控制器设置为我的 apiDirective 控制器。但是在 consumerFunction 中,控制器始终是null. 为什么?我怀疑它与第二次编译有关?

完全删除第二个编译会导致指令无法正常呈现。为什么?

发生了什么,如何在不手动将属性级别控制器内联到指令上的情况下修复它?

plnkr 演示:http ://plnkr.co/edit/Lbh7T9FRg3nS6ERW4HtA

0 投票
1 回答
111 浏览

jquery - 使用 Angular 在 ng-repeat 中的特定位置注入唯一的 DOM 元素

我有一个复杂的网格指令,它绑定到一个长列表模型对象。对于我的一个应用程序,我有一个列表,我需要在其中注入所选行中的指令。代码类似于

我需要这样做以避免复杂组件的多个实例(现在,它包含在每一行中,根据范围的切换值显示/隐藏),因为它很重并且使应用程序运行缓慢。我尝试使用 insertControl 方法中的 appendTo 方法在 jquery 中移动元素。不幸的是,一旦我改变视图,它就不起作用了。经过一番研究,我发现我需要使用带有嵌入的 Angular 指令或使用 $compile。

执行跨视图的jquery appendTo 的角度方式是什么?

0 投票
0 回答
551 浏览

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>