Angular 7绑定下拉列表

时间:2018-12-21 08:01:53

标签: angular ngmodel

如何同步数组内容和显示?

我的目的:“ groupeBeatles”是我的参考数组,显示的“ nom” /“ prenom”控件必须始终符合此数组。此回调用于此目的:

synchroMembre($event) {
    const prenom: string = this.groupeBeatles.filter(membre => {
        membre.nom = this.nomCourant;
    })[0].prenom;
    console.log('******* prenomCourant - prenom *************', this.prenomCourant, ' - ', prenom);
    this.prenomCourant = prenom;
}

例如,如果我给“ Lennon”的第一个名字是“ Paul”,他必须在“ John”中改正自己。事实并非如此!

我的示例出了什么问题? (请参见StackBlitz

1 个答案:

答案 0 :(得分:1)

如果我理解的正确,您希望根据选择使名称彼此对齐,

您错误实现的是过滤器功能

您的过滤器功能应如下所示,

$validator = Validator::make($request->all(), [
    'person.*.email' => 'email|unique:users',
    'person.*.first_name' => 'required_with:person.*.last_name',
]);

您实际上是在错误的过滤器内分配值,过滤器是过滤掉这些值,因此您需要返回true或false值。 recommended read to understand the filter

如果您想同时申请这两者,可以执行以下操作

 const newName: string = this.groupeBeatles.filter(membre => membre.prenom === $value)[0].nom;       
    this.nomCourant=newName;

并传递值

  synchroMembre($value, typeChange) {
    if (typeChange === 'pren') {
      const newName: string = this.groupeBeatles.filter(membre => membre.prenom === $value)[0].nom;
      this.nomCourant = newName;
    } else {
      const newName: string = this.groupeBeatles.filter(membre => membre.nom === $value)[0].prenom;
      this.prenomCourant = newName;
    }

  }

Demo