Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
angular,ng zorro:对象作为标记_Angular_Ng Zorro Antd - Fatal编程技术网

angular,ng zorro:对象作为标记

angular,ng zorro:对象作为标记,angular,ng-zorro-antd,Angular,Ng Zorro Antd,我在这里介绍了一个nz select,它允许用户选择多个成员。 我想要的是将用户名显示为标记标签,但将id绑定到模型 <nz-select formControlName="member" nzMode="tags" (nzOnSearch)="searchUsers($event)"> <nz-option *ngFor="let member of searchUsersList" [nzLabel]="member.name" [nzValue]="member.

我在这里介绍了一个nz select,它允许用户选择多个成员。 我想要的是将用户名显示为标记标签,但将id绑定到模型

<nz-select formControlName="member" nzMode="tags" (nzOnSearch)="searchUsers($event)">
    <nz-option *ngFor="let member of searchUsersList" [nzLabel]="member.name" [nzValue]="member._id">
    </nz-option>
</nz-select>

当用户通过下拉菜单添加成员时,标记将显示用户名,但在模型中,id会被添加。 当重新加载此页面/字段时,似乎我只能向模型中添加字符串,这些字符串当时也显示为标签。我不能添加包含字符串和id的复杂对象,我也不知道如何插入标签

有没有关于如何实现我想要的东西的提示?
我真的不喜欢在后端/db中使用用户名,但我也不想在标签中看到id。

问题是,重新加载页面时,会销毁所有标签。加载模型并将值传递给nz时,选择这些ID的选项不在您的
searchUsersList
atribute中。重新加载页面时,您需要获取表单控件
成员的ID
,并在SearchUsers列表中添加这些对象。可能会使用这些ID向后端发出http请求,并获得这些ID的选项,我可以工作

import { Component, OnInit } from '@angular/core';
import { FormBuilder, FormControl } from '@angular/forms';

@Component({
  selector: 'nz-demo-select-label-in-value',
  template: `
    <nz-select
      [formControl]="control"
      style="width: 200px;"
      nzMode="tags">
      <nz-option *ngFor="let option of optionList"
       [nzValue]="option.value" 
       [nzLabel]="option.label">
      </nz-option>
    </nz-select>
  `
})
export class NzDemoSelectLabelInValueComponent implements OnInit {

  optionList = [{ label: 'Lucy', value: 1,}, { label: 'Jack', value: 2}];

  control: FormControl;

  constructor(private fb: FormBuilder) {

  }

  ngOnInit() {
    this.control = this.fb.control([2]);
  }

}
从'@angular/core'导入{Component,OnInit};
从'@angular/forms'导入{FormBuilder,FormControl};
@组成部分({
选择器:“选择值中的标签”,
模板:`
`
})
导出类NzDemoSelectLabelInValueComponent在NIT上实现{
optionList=[{label:'Lucy',value:1,},{label:'Jack',value:2}];
控制:FormControl;
构造函数(私有fb:FormBuilder){
}
恩戈尼尼特(){
this.control=this.fb.control([2]);
}
}

如果我错了,请纠正我。当你在标签中选择一个或多个用户时,你会看到:(username1),(username2),(username3)。刷新页面并加载模型时。参见(id1)(id2)(id3)。你希望当用户重新加载页面时再次看到(username1),(username2),(username3)?完全是的!模型只保存id的。。。当用户添加某些内容时,id会被添加(值),但标签是不同的。似乎,没有任何选项可以通过编程方式触发它。它可以在thx下工作!它需要装订。不幸的是,它不能以这种方式与Formgroup一起工作,而只能与普通formControl一起工作