Angular 4 + Material Design - 可移除的芯片

3
我需要像上面那样可拆卸的芯片:

https://material.angularjs.org/latest/demo/chips

但是我必须使用Angular 4来编写它。我该如何将这些芯片https://material.angular.io/components/chips/overview改为可移除的?

现在我必须像这样将它绑定到文本区域:

<div class="row">
            <div class="form-group col-md-6">
                <label for="myChips">Chips:</label>
                <textarea class="form-control" rows="2" type="text" id="myChips" [(ngModel)]="myChips" name="myChips" placeholder="Write chips here"></textarea> 
            </div>
        </div>

我该如何像angularjs.org中的示例一样绑定这些芯片?

1
使用数组来存储芯片的字符串,通过ngfor循环渲染它们,在单击芯片的交叉图标时,从数组中删除它们。 - Ploppy
2个回答

3

首先将font-awesome导入到您的项目中,或使用可用的关闭图标(我在示例中使用了font-awesome)。

然后,您可以在芯片中添加图标并为其添加单击事件。当单击关闭图标时,传递其索引并从原位置删除它。

示例html:

<md-chip-list>
  <md-chip *ngFor="let chip of chips; let i = index"  
           color="accent">
    {{chip}}
    <i class="fa fa-close" (click)="remove(i)"></i>
  </md-chip>
</md-chip-list>  

component.ts:

chips = [
 'Apple',
 'Orange',
 'Banana',
 'Mango',
 'Cherry'
]

remove(item){
  this.chips.splice(item, 1);
}

Plunker demo


以下是我得到的屏幕截图,但我没有达到预期结果。 - user
就像我说的那样,你要么使用本地“assets > img”文件夹中已有的图标,要么在你的index.html中添加这个链接来使用“font-awesome”:<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous"> - Nehal
我修改了我的问题,因为我真的需要有关芯片功能的输入。它可以是输入框或文本区域。 - user
最好创建一个新问题,因为将输入/文本区域与 md-chip 绑定与仅具有可移动芯片完全不同。 - Nehal
我在这里创建了一个新问题。如果您知道如何做,请告诉我。 - user

-1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接