问题标签 [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.
angular - 如何有条件地将 div 包裹在 ng-content 周围
取决于(布尔)类变量的值,我希望我ng-content
要么被包裹在 div 中,要么不被包裹在 div 中(即 div 甚至不应该在 DOM 中)...... 最好的方法是什么对这个 ?我有一个Plunker试图做到这一点,我认为这是最明显的方式,使用 ngIf .. 但它不起作用......它只显示一个布尔值的内容,而不显示另一个
请协助谢谢!
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/问题/3099。AfterViewInit
OnDestroy
但是这个问题仍然存在 - 我怎么能这样做才能使菜单项仅在菜单打开时才被实例化,如果关闭则正确销毁?所有钩子都应该只与真实的 DOM 状态相关。
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()
方法吗?这样的事情甚至存在吗?
希望你能帮我!
问候,约翰
angular - 是否可以将默认值设置为
我只是从本教程中学习使用Transluction
in :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>
angular - 如何在 Angular 2 中编译 ng-content 中的动态模板
我正在尝试通过编写自定义组件/指令来扩展/包装第三方(Angular Material 2)指令。
对于一个按钮,
我不会在我的应用程序的所有位置直接使用上述控件,而是将其包装在一个自定义组件中,并且我将在一个位置进行配置更改,它将影响使用自定义组件的所有其他位置。
在 AfterViewInit 钩子中,我正在尝试设置元素属性“md-button”,我成功了,但我需要编译以获得材料外观和完整。如何编译 ng-content 中的模板。你能指导我吗。
angular - 当父组件使用 ng-content Angular 时从子组件访问父组件
我正在尝试使用依赖注入从子组件访问父组件。它有效,我可以访问父级以使用它的方法和属性,但我没有在 Angular 文档上看到这种方法。那么你对这种方法有什么想法吗?我应该使用它吗?
因为父组件使用 ng-content(比如 transclude angularjs)所以我不能使用 EventEmitter @Output 方法。
下面是我的代码:
Wizard.component.ts(父级)
step.component.ts(子)
app.component.html(主应用程序)
期待听到您的意见。谢谢!
css - 有没有办法在 Angular2 组件内的 ng-content 中使用 css?
我试图通过包含在组件中的子元素包含 css ng-content
。它似乎还没有在 Angular 2 中实现,或者除了将 css 放在通用样式表中之外,也许有人有解决方案?
app.component.ts
compParent.component.html
compParent.component.css
angularjs - 来自 ng-content 的引用组件变量
我有以下标记:
group-header 的模板如下所示:
isOpen 在我的组头组件中定义如下:
显然,我无法以我想要的方式(或根本没有)引用 isOpen,因为我的“PRICE”资源永远不会显示。
有没有办法让我的 ng-content 渲染内容根据我的组件上的字段有条件地显示?
希望这一切都有意义......如果没有,请询问
编辑:根据@PierreDuc 的评论添加了 setter :-)
angular - Angular 2 - 从子组件中的 ng-content 投影访问内容和事件
我正在 angular2 中制作一个侧边栏。
代码:
侧边栏(子)组件的模板:
父组件的模板:
在侧边栏组件中,我使用 . 投影写在父组件中的内容<ng-content></ng-content>
。
我想做的事:
当我单击Menu-item
锚标记时,我希望列表切换(出现和消失,如可折叠)。
我尝试过的问题和问题:
我在锚标签上保留了一个(click)
事件。但在这种情况下,它会在父组件中通知,而不是在子app-sidebar
组件中通知。出于可重用性的目的,我不希望功能位于父组件中。我如何知道用户何时单击app-sidebar
组件中的锚标记,并更改列表的显示?
有没有其他方法可以在侧边栏中制作可重复使用的可折叠?告诉我我的方法是否错误。