html - 如何动态地将选项添加到 Angular 组件中的选择元素?
问题描述
我目前有一个 Angular 组件,其中包含我希望用户能够手动更改的解决方案数组。我已经有一个按钮,允许用户动态添加到这个数组,但我正在尝试实现删除。我希望显示一个包含所有解决方案的选择框,然后当用户单击其中一个选项并点击“删除解决方案”时,它将从数组中删除该元素。
目前我的组件的 html 如下所示:
<div *ngIf="logged" class="solutionsInput">
<div>
New Solution:
<div>
<textarea id="Solution" [(ngModel)]="newSolution" placeholder="None"></textarea>
</div>
</div>
<button class="add-solutions" (click)="addSolutions(defect)">
Add Solution
</button>
<!-- BELOW IS THE PART THAT NEEDS TO BE FIXED -->
<select id = "solutions"></select>
<button class="delete-solutions" (click)="deleteSolutions(defect)">
Delete Solution
</button>
</div>
我的组件的打字稿如下所示:
defect.solutions = [] //THIS IS WHAT I WANT TO ALTER
newSolution = "";
addSolutions(defect: Defect): void {
if(this.newSolution !== "") {
this.defectService.getSolutionsHelper(defect).subscribe((currSolutions) => {
//not necessary to see all of this
})
});
}
}
deleteSolutions(defect: Defect): void {
//THIS NEEDS TO BE IMLPEMENTED
}
对我应该做什么有什么想法吗?非常感谢您的帮助!
解决方案
当我遇到这些情况时,我会使用多选下拉列表。我的团队使用 Kendo UI for Angular 包,但还有其他免费选择,例如:
https://www.npmjs.com/package/ng-multiselect-dropdown
使用这种方法,您可以简单地将调用 this.defectService.getSolutionsHelper 的结果绑定到控件 (defect.solutions),然后用户可以从易于选择的项目中删除单个成员。由于控件绑定到defect.solutions,控件将本机修剪数组。
这可能对你有用。祝你好运!
推荐阅读
- python-3.x - 嗨,我正在尝试使用 while 循环来显示 (4, 49, 2) ex 4 8 12 16 20 的范围......但我必须使用 while 循环。我将如何编码thise?
- tensorflow - 使用 DP-FedAvg 联合的 TensorFlow 中的每个示例剪辑
- python - 确定矩阵中是否存在复数
- java - 在Java中读取文件大于3 GB的Java流
- android - 使用 addView() 时未添加视图
- python - 将 vlc 窗口上的 tkinter 带到前台
- python - VS Code 中某些模块的导入时间长
- google-cloud-platform - 在 Google Cloud Build 中从默认 Cloud Build 服务帐户执行时,GSuite 的 Terraform 提供程序能否访问 Admin SDK Directory API?
- docker - 无法从 gitlab CI 拉取或推送到个人注册表
- visual-studio-2019 - 如何使用 VS2019、/std:c++latest 和 /Zc:__cplusplus 编译 eigen