如何同步数组内容和显示?
我的目的:“ 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)
答案 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;
}
}