问题标签 [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 投票
1 回答
1528 浏览

angularjs - 具有 ng-repeat 的 AngularJS 隔离指令打破了嵌入范围

我真的很感激我在开发一个嵌入的隔离指令时遇到的这个范围界定问题的一些理解,其中嵌入在模板内重复。

我保证我已经了解隔离和包含范围的工作原理,并且我已经在网上搜索了答案。:)

我在这里发现的是,当不使用重复时,我的嵌入的 html 可以访问父范围(正如我所料,因为嵌入的范围是父范围的兄弟)。

但是,当我更改模板以重复嵌入时,被嵌入的 html 不再可以访问父范围。

我敢肯定这是有充分理由的,但就我的一生而言,我不能指望它。

在此处查看示例 plunker - 它会比文字更好地解释我所指的内容。

0 投票
2 回答
1247 浏览

angularjs - AngularJS:在元素后插入模板并在点击时触发显示

我创建了这个 Plnkr 来展示我已经开始的内容:

http://plnkr.co/edit/LzcbPMqqiQbFjVzw4kDO?p=preview

两个问题:

  1. 如何获得角度以将原始按钮留在原位并在其后插入模板,而不是将模板作为按钮的子项插入?

  2. 如何让指令仅应用于事件?例如,单击按钮时?

我想我可以使用另一个属性来指定事件,例如 ctx-trigger="click" 然后在编译函数中执行 element.bind(attr['ctxTrigger'],...) 但这不起作用。

0 投票
6 回答
26775 浏览

symfony - 渲染前检查模板是否存在

有没有办法在调用渲染之前检查树枝模板是否存在?至少在开发环境中,try catch 块似乎不起作用,而且,我更喜欢检查而不是异常的成本。

此类TwigEngine有一个 exists() 方法,但没有找到使用示例。

0 投票
4 回答
12793 浏览

angularjs - Angular.js & Adsense

I'm trying to put ads on my angular.js app, and I've done some reading and discovered it isn't possible to just copy and paste the normal adsense code.

I've heard you are supposed to "wrap it in a directive with a transclusion," and the only example I can find of this is another Stackoverflow post: AngularJs and AddThis social plugin

Can someone help give guidance about how to go about doing this with Google Adsense?

0 投票
2 回答
1578 浏览

angularjs - AngularJS - 监视嵌入元素的模型

在 AngularJS 中,我有基本嵌入的指令。我知道当我使用它时通常是嵌入的输入或文本区域,如果存在,我想 $watch 它的模型以进行更改。但我无权访问转入内容的属性,只能访问调用指令的根元素的属性。嵌入范围也是如此(也许 scope.$$nextSibling 可以提供帮助,但有些东西告诉我这是通往地狱的路:))。

那么有什么方法可以做到这一点,而无需向调用指令的元素添加另一个参数(属性)?

指令模板

指令用法

0 投票
1 回答
1039 浏览

angularjs - 从嵌入指令访问隔离的父范围

我遇到的情况似乎与 StackOverflow 上的所有类似问题都相反。

我有一个<scroll>指令,它只是用某种可滚动的方式包装它所拥有的任何内容div。它或多或少看起来像这样:

这本身就很好用。

现在,我有另一个指令<editor>,它有一个独立的范围<scroll>在它的模板中使用。<editor>看起来或多或少像:

现在,事情是这样的:我需要<editor>从 ' 的链接函数中访问 ' 的范围<scroll>(它说“这里有一些代码”),但由于某种原因我不能。的链接函数中的scope变量<scroll>几乎是空的,它scope.$parent给了我上面的控制器,跳过了<editor>应该在路上的那个。

我试过ng-transclude在不同的地方玩<editor>并尝试使用$emit,但我对此一无所知 - 我认为范围隔离会将“我和我下面的一切”与上面的东西隔离开来,但似乎范围隔离只需要范围树中的“我”...

希望这足够清楚,谢谢。

0 投票
2 回答
1140 浏览

javascript - 多个指令和 ng-transclude

我在多个指令的元素上使用 ng-transclude 时遇到问题。

我有两个指令,其中一个实例化另一个:

HTML 看起来像这样:

问题是 div 的原始内容:

没有被嵌入,而是被模板完全覆盖。

如何修复嵌入?

0 投票
1 回答
385 浏览

angularjs - Angular:链接嵌入的模板

我有一个指令,该指令部分由父作用域中的 ng-repeat 填充,然后将侦听器附加到postLink. 但是,由于内容是嵌入的,因此链接时间不可用/插值。

我整理了一个JSFiddle 示例来演示:

模板:

代码:

在这种情况下,列表项计数最终为 2,而不是预期的 5 一个预期的 post-transclusion。

任何人有任何想法我怎么能做到这一点?期待找到某种我可以观察到的嵌入后事件,然后才进行链接,但找不到。

0 投票
1 回答
93 浏览

angularjs - 嵌入后如何访问控制器范围?

如果我错了,请纠正我,但我认为在这种firstDirective情况下,我无法实现的行为,secondDirective因为它正在创建同级范围;我无法访问模板的控制器范围。我想要secondDirective具有嵌入力量的行为。有没有办法做到这一点?还是我以错误的方式解决这个问题?

http://jsfiddle.net/3QRDt/68/

0 投票
1 回答
5980 浏览

angularjs - AngularJS:如何转换和替换包含元素

我正在尝试创建一组 AngularJS 指令,它们将有条件地呈现块或内联页面内容的互斥段。例如,我设想了一种只呈现第 n 个子元素的机制:

但是,我的设计要求使用自定义元素标记(而不是应用于 HTML 元素的属性)来实现指令,并且在渲染完成时从 DOM 中删除这些 HTML 无效元素。因此,在上面的示例中,将保留一个匹配div元素。

作为对这个概念进行原型设计的第一次尝试,我将内置ngIf指令转换为使用以下基于元素的语法:

让它工作只需要修改restrictE更改被监视属性的名称为condition. 这是我对内置实现的修改版本:

但是,我在消除包含if元素方面没有多大成功。我怀疑我需要更好地理解嵌入是如何工作的,但周围似乎没有太多文档。

因此,如果您可以建议使用正确的技术,或者向我指出一些相关教程的方向,我将非常感激。

谢谢,蒂姆