【发布时间】:2017-03-12 14:09:23
【问题描述】:
我有一个按钮组件fancy-textbox。我想让它使用户可以动态添加新的fancy-textbox,但是他们在文本框上方有不同的标签,这些标签基于fancy-textbox本身独有的范围变量(或者可能来自父范围变量未在所有fancy-textboxes 之间共享)。我该怎么做呢?目前,我直接在我的模板显示和隐藏中使用它,但我希望能够以编程方式“动态添加更多实例”:
<div *ngIf="showTextBox">
<fancy-textbox labelForBox="TextBox 1"></fancy-textbox>
</div>
如果花哨的文本框只在 DOM 中的一个特定区域中创建,那就太好了。但是,我想做的是能够在 DOM 的不同部分动态创建组件。
<div class="container">
<div class="navsection"><input id="classname" type="text"><button (click)="createFancyButton()">Create Fancy Button</button></div>
<div class="topsection">
</div>
<div class="midsection">
</div>
<div class="botsection">
</div>
<div class="footsection"></div></div>
鉴于上面的模板...假设用户在文本框中输入类名(例如botsection)并点击“createfancybutton”按钮),我想要“”
“<fancy-button></fancy-button>”要放入页面的适当部分,我希望能够在页面模板的不同部分动态“创建”独立“花式按钮”的实例。我可以将 3 个 ng-if 语句与 ng-for 结合起来,尽管这似乎不切实际。正在寻找更好的选择...
更新:所以步骤是:
1) 用户在文本框中输入“中段”。
2)用户点击按钮“创建花式按钮”
3) - <fancybutton></fancybutton> 组件将添加到类名为“midsection”的 div 下-
用户可以重复点击相同的“创建花式按钮”按钮以在其下创建更多。如果用户将输入框更改为“topsection”,那么当用户单击“Create Fancy Button”时,fancybutton 组件将添加到 div 下,并带有“topsection”。
如果用户输入“newsection”,则会在类名为“container”的div下新建一个classname为“newsection”的div,并在classname为“newsection”的div中添加fancybutton组件。
【问题讨论】:
-
也许你可以定义
#target1,#target2... 像 ids,只要你想动态插入你的组件,只要遵循这个简单的答案 How to place a dynamic component in a container
标签: angular