问题标签 [angular-dynamic-components]
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 - 何时为动态加载的角度组件触发 OnInit 事件?
我正在MyComponent
使用以下代码动态加载 Angular 组件 ()。创建组件后,我还将一些数据传递给组件。
什么时候触发OnInit
生命周期事件?MyComponent
调用后会立即触发createComponent()
吗?还是只会在之后调用它setData()
?
angular - Angular 动态组件 AOT 问题
angular2-forms - 如何动态加载自定义输入表单组件并将响应式表单值绑定到它
我正在尝试使用 Angular 8 创建自定义输入组件。我想使用 JSON 元数据动态加载该自定义输入组件。当我渲染组件时,我想使用 Reactive 表单将值绑定到它。父组件将创建表单组,我将相应地设置我的自定义组件 formControlName。
我尝试将 ControlValueAccessor 接口添加到组件并实现了接口方法。但是它们都没有触发。我还为我的组件 NG_VALUE_ACCESSOR 提供了提供程序。
文本框模板代码:
指令代码:
根组件模板
根组件.ts 文件
示例 json:我们从服务方法中获得
期望执行接口方法。但是没有一个接口方法正在执行/调用。因此没有发生绑定。
angular - 动态添加和删除组件作为 Angular 中的表单字段
我在模板上有不同的按钮,例如输入、复选框、单选、按钮等,并且在单击每个按钮时,它们对应的表单字段应该会显示出来。
例如 - 单击输入按钮时,应动态创建输入按钮组件并显示。并且这个字段也有remove按钮,点击remove按钮他们对应的字段应该从dom中移除。
我有关于动态生成组件的基本想法,需要帮助来完成上述场景。
呈现表单字段的示例对象结构可以如下所示:
angular - 根据Angular中父组件到子组件的选项传递动态Html元素?
我想根据条件将 html 元素从父 级传递 给子级
为了解决这个问题,我使用ngTemplateOutlet, ngContent通过角度的内容投影概念。
我在控制台中收到错误错误错误:templateRef.createEmbeddedView 不是函数
我试过这样
请找到我制定的链接https://stackblitz.com/edit/angular-yzzsgs-dnfgaq?file=src/app/app.component.ts
还有其他方法吗?
任何帮助都会很明显
提前致谢
angular - 如何使用`ngTemplateOutlet`绑定动态创建的组件的输入和输出?
我需要创建带有组件的主机组件,以在mat-tab
. 组件在列表中提供,并且可以有所不同。由于我们不知道要渲染哪个组件,我们如何将输入和输出与父(主机)视图和动态创建的组件绑定。
前任:
对于我已经考虑ViewContainerRef
过的替代ComponentFactoryResolver
方法。由于存在并且无法添加更多选项卡,因此这种方式ViewContainerRef
变得未定义。*ngIf
这个问题有什么解决办法吗?
我已经提到了Angular 文档
javascript - 在 Angular 中加载大量组件的最佳方法是什么
好的,所以我有一个带有 104 个组件(小部件)的DashboardSharedModule 。
然后是一个自定义页面(CustomizationModule),用户可以在其中从 104 个小部件(组件)中进行选择,这是延迟加载的模块。
每当我导航到自定义页面时,所有 104 个组件都会立即加载,并且加载需要将近 4-5 秒。
加载所有这些组件的最佳方式是什么?也许使用滚动技术?
但是每当我在CustomizationModule模块中导入DashboardSharedModule时,它都会加载所有组件。
应该怎么做才能避免组件加载延迟 4-5 秒。
javascript - 以角度创建嵌套的动态组件
我想知道如何创建嵌套的动态组件并维护其父子关系。
例如,我有这样的数据,
我想创建这样的组件,
但是使用我的代码,我只能创建父组件或子组件。但不是两者兼而有之。
下面是我的代码,
使用此代码,我得到此输出。
链接到工作示例,StackBlitz
请帮我解决这个问题。
更新。
即使添加了viewChild
,它仍然会抛出viewchild not defined
。
请参阅此图片,在 component.instance 中我没有看到视图子元素。
更新了 stackblitz 链接https://stackblitz.com/edit/angular-dynamic-new-mepwch?file=src/app/content/a/a.component.ts
angular - 点击事件在运行时添加 Angular 组件的最佳方法
我正在构建的网站有多个组件。在“主页”页面组件上,当用户单击按钮向页面添加内容时,我想将他们选择的组件附加到“主页”组件。我已经研究并发现了 3 种方法,但我想知道考虑这种功能的最佳实践是什么。该页面将使用其他用户已经添加的一些组件进行初始化。我希望用户能够添加到那里的组件。
Angular 说我应该这样做: https ://angular.io/guide/dynamic-component-loader
Angular Material 说我应该这样做: https ://material.angular.io/cdk/portal/overview
而且我个人期望以这种方式(可行),但我认为这不是“最佳实践”:
所以当用户点击这个标签时,它会触发 append 方法:
<a class="dropdown-item" href="#!" (click)="prependMedia('elementOne')">ElementOne</a>
该方法在组件的 TS 文件中调用它,有效地将新元素推送到数组中。然后列出的 HTML 将监视添加的新元素并将组件放入 ngFor:
打字稿文件:
将组件的新模型添加到 mediaElements 数组后将添加组件的 HTML 文件:
我的问题:我对 ngFor 使用的方法有什么问题?不是以自以为是的方式,而是在技术上。当用户单击按钮将组件添加到页面时,将组件添加到 DOM 的“最佳实践”方式是什么?为什么?不是以固执己见的方式,而是技术上或来自 Angular 团队的证据。
我最初打算使用我在代码中显示的方式,但现在我找到了 Angular 方式和 Angular Material 方式,我正在寻找关于最佳方式的事实。
请指教?由于有些人认为这对意见过于开放,因此保持技术性会有所帮助。
如果您需要任何进一步的描述,请告诉我。
谢谢你,埃里克