javascript - 使用 ng-template 进行 ng-select 时,清除图标 'x' 丢失

标签 javascript html angular ng-template

当对所选项目使用 ng-template 时。删除元素的“x”图标丢失了,包中关于使用 ng-template 的文档有点差所以我一直在挖掘他们的源代码但没有运气。

我把这个 stackblitz 放在一起了这样您就可以重现问题

HTML

<form>
  <ng-select 
  [items]="availableItems" 
  [multiple]="true" 
  [closeOnSelect]="false"
    [hideSelected]="true" 
  [searchable]="true" 
  placeholder="Choose an item" 
  [(ngModel)]="selectedItems"
     name="item">
        <ng-template ng-label-tmp let-item="item">
            <div>{{item.name}}</div>
        </ng-template>
        <ng-template ng-option-tmp let-item="item">
            <div>{{item.name}}</div>
        </ng-template>
    </ng-select>
</form>

component.ts

export class AppComponent {

  availableItems = [
    { id: 1, name: 'name 1', value: 'value 1' },
    { id: 2, name: 'name2', value: 'value 2' },
    { id: 3, name: 'name 3', value: 'value 3' },
    { id: 4, name: 'name 4', value: 'value 4' }
  ];
  selectedItems = [
    { id: 2, name: 'name2', value: 'value 2' },
    { id: 3, name: 'name 3', value: 'value 3' },
  ]
}

有什么想法吗?

最佳答案

传入自定义模板时,需要在里面定义清除按钮。请参阅此处的文档:https://ng-select.github.io/ng-select#/multiselect

你需要有一个类似于下面的模板:

<ng-template ng-label-tmp let-item="item" let-clear="clear">
    <span class="ng-value-label">{{item.login}}</span>
    <span class="ng-value-icon right" (click)="clear(item)">×</span>
</ng-template>

我修改了您的 StackBlitz 以添加此功能。你可以找到它here .

关于javascript - 使用 ng-template 进行 ng-select 时,清除图标 'x' 丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53753811/

相关文章:

css - Angular 2多选仅显示静态占位符

angular - 无法分配给 'value',因为它是常量或只读属性。 Angular 6

javascript - 通过 Javascript 检查页面是否正在加载某些内容

javascript - Polymer 应用程序的全局数据存储

javascript - 没有 HTML 的 jQuery UI

html - GWT 剪辑图像

javascript - 是否可以在 <option> 中设置字体系列

javascript - 如果我们有 5 秒后隐藏的时间间隔,则无法获取 Growl 消息

html - 如何根据文本子集居中文本?

css - 自动处理 CSS 文件