问题标签 [angular2-ngcontent]

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 投票
3 回答
26360 浏览

angular - 如何有条件地将 div 包裹在 ng-content 周围

取决于(布尔)类变量的值,我希望我ng-content要么被包裹在 div 中,要么不被包裹在 div 中(即 div 甚至不应该在 DOM 中)...... 最好的方法是什么对这个 ?我有一个Plunker试图做到这一点,我认为这是最明显的方式,使用 ngIf .. 但它不起作用......它只显示一个布尔值的内容,而不显示另一个

请协助谢谢!

http://plnkr.co/edit/omqLK0mKUIzqkkR3lQh8

0 投票
2 回答
1482 浏览

angular - 根据 Angular 2 中的 DOM 状态实例化嵌入组件

常见菜单使用案例

菜单模板

我很惊讶地听到所有menu-item*组件(及其所有子组件)都将被实例化,尽管它们存在于 DOM 和menu组件*ngIf状态中。即使菜单从未打开过,它们的OnInit和钩子也会被调用,并且即使从 DOM 中真正添加-删除也不会触发。这是关于此https://github.com/angular/angular/issues/13921的已关闭问题(有一个带有示例的 plnkr)和角度文档的问题https://github.com/angular/angular.io/问题/3099AfterViewInitOnDestroy

但是这个问题仍然存在 - 我怎么能这样做才能使菜单项仅在菜单打开时才被实例化,如果关闭则正确销毁?所有钩子都应该只与真实的 DOM 状态相关。

0 投票
1 回答
1214 浏览

javascript - 我可以“观察”组件的动态子代吗?

我有一个应用程序,我在其中使用多个表单组件编写表单。现在我想创建某种外键字段,它列出了已经存在的对象并显示了一个“添加”按钮。此按钮在模式对话框中显示另一个表单组件。该“子”表单仅使用显示<ng-content>。这一切都完美无缺

我将说明情况。这是模板<form-component>

的模板<form-field>

如您所见<another-form-component>,有一个@Output()for it'ssave事件。这是一个EventEmitter.

我的问题是:如何EventEmitter<form-field>组件订阅这个?我想知道何时保存表单,以便我可以关闭<modal-dialog>.

请记住:表单是使用<ng-content>. 我可以@ViewChildren用来获取孩子<form-field>并使用某种addEventListener()方法吗?这样的事情甚至存在吗?

希望你能帮我!

问候,约翰

0 投票
3 回答
7761 浏览

angular - 是否可以将默认值设置为

我只是从本教程中学习使用Transluctionin :angular2

https://scotch.io/tutorials/angular-2-transclusion-using-ng-content

我能够将<ng-content>标签用于某些内容,例如:

它位于my-block附加选择器的组件中。

它将我的其他组件中的内容呈现为:

问题是:

<ng-content>如果我们没有传递任何值,是否可以将默认值添加到可以使用的块中?

至于现在,如果没有传递任何值,那么它的位置就会出现空白页。

编辑:

当我尝试测试时,有新版本zone.js不允许显示正确的错误,因此我得到的错误如下:

但是当我将版本更改为zone.js错误0.7.2时,控制台中清楚地提到了:

因此,它确认不能将任何默认值设置为<ng-content>

0 投票
1 回答
972 浏览

angular - 如何在 Angular 2 中编译 ng-content 中的动态模板

我正在尝试通过编写自定义组件/指令来扩展/包装第三方(Angular Material 2)指令。

对于一个按钮,

我不会在我的应用程序的所有位置直接使用上述控件,而是将其包装在一个自定义组件中,并且我将在一个位置进行配置更改,它将影响使用自定义组件的所有其他位置。

在 AfterViewInit 钩子中,我正在尝试设置元素属性“md-button”,我成功了,但我需要编译以获得材料外观和完整。如何编译 ng-content 中的模板。你能指导我吗。

0 投票
4 回答
8791 浏览

angular - 当父组件使用 ng-content Angular 时从子组件访问父组件

我正在尝试使用依赖注入从子组件访问父组件。它有效,我可以访问父级以使用它的方法和属性,但我没有在 Angular 文档上看到这种方法。那么你对这种方法有什么想法吗?我应该使用它吗?

因为父组件使用 ng-content(比如 transclude angularjs)所以我不能使用 EventEmitter @Output 方法。

下面是我的代码:

Wizard.component.ts(父级)

step.component.ts(子)

app.component.html(主应用程序)

期待听到您的意见。谢谢!

0 投票
2 回答
18635 浏览

css - 有没有办法在 Angular2 组件内的 ng-content 中使用 css?

我试图通过包含在组件中的子元素包含 css ng-content。它似乎还没有在 Angular 2 中实现,或者除了将 css 放在通用样式表中之外,也许有人有解决方案?

app.component.ts

compParent.component.html

compParent.component.css

0 投票
1 回答
1218 浏览

angularjs - 来自 ng-content 的引用组件变量

我有以下标记:

group-header 的模板如下所示:

isOpen 在我的组头组件中定义如下:

显然,我无法以我想要的方式(或根本没有)引用 isOpen,因为我的“PRICE”资源永远不会显示。

有没有办法让我的 ng-content 渲染内容根据我的组件上的字段有条件地显示?

希望这一切都有意义......如果没有,请询​​问

编辑:根据@PierreDuc 的评论添加了 setter :-)

0 投票
1 回答
1653 浏览

angular - Angular 2 - 从子组件中的 ng-content 投影访问内容和事件

我正在 angular2 中制作一个侧边栏。

代码:

侧边栏(子)组件的模板:

父组件的模板:

在侧边栏组件中,我使用 . 投影写在父组件中的内容<ng-content></ng-content>

我想做的事:

当我单击Menu-item锚标记时,我希望列表切换(出现和消失,如可折叠)。

我尝试过的问题和问题:

我在锚标签上保留了一个(click)事件。但在这种情况下,它会在父组件中通知,而不是在子app-sidebar组件中通知。出于可重用性的目的,我不希望功能位于父组件中。我如何知道用户何时单击app-sidebar组件中的锚标记,并更改列表的显示?

有没有其他方法可以在侧边栏中制作可重复使用的可折叠?告诉我我的方法是否错误。

0 投票
3 回答
8588 浏览

angular - 在 Angular 2 中捕获关于 ng-content 的事件

我正在阅读本教程以理解 angular 2's ng-content。我想捕获触发的事件ng-content。我有以下组件:

在这里,如您所见,我正在为click事件设置一个侦听器。但由于某些原因,它没有触发。似乎整个ng-content标签都被替换了。因此,要捕获当前我正在执行的事件:

有没有更好的方法来做到这一点?因为我不想将我的包装ng-content成 adiv以避免样式问题。谢谢。PLNKR