当前位置: 首页 > 知识库问答 >
问题:

如何*ngfor over ngModel可绑定属性集

云瑞
2023-03-14

我尝试使用*ngfor来表示一组相同的输入,保存输入应该绑定到的属性。

<mat-form-field *ngFor="let prop of [ID, Name, Nickname]">
    <input matInput type="text" placeholder="prop.key" #propInput [(ngModel)]="prop">
    <button mat-icon-button matSuffix mat-icon-button *ngIf="propInput.value" (click)="prop='';">
        <mat-icon>close</mat-icon>
    </button>
</mat-form-field>

 <!-- bind test -->
<input matInput type="text" placeholder="Name Test" #propInput [(ngModel)]="Name">
import { Component } from '@angular/core';
import { EntitySrcService } from '../entity-src.service';

@Component({
  selector: 'app-entity-table',
  templateUrl: './entity-table.component.html',
  styleUrls: ['./entity-table.component.less']
})

export class EntityTableComponent {

  constructor(
    private entitySrc: EntitySrcService
    ) {}

  public get ID(): string {
    return this.entitySrc.id;
  }

  public set ID(value: String) {
    this.entitySrc.id = value;
  }

  public get Name(): string {
    return this.entitySrc.name;
  }

  public set Name(value: String) {
    this.entitySrc.name = value;
  }

  public get Nickname(): string {
    return this.entitySrc.altName;
  }

  public set Nickname(value: String) {
    this.entitySrc.altName = value;
  }

}

我在组件中使用get/set属性代理到实际的存储位置,但我的理解是get/set属性应该与普通属性相同(使用普通属性具有相同的单向绑定行为)。

那么,如何正确地迭代一组要绑定到的属性呢?

共有1个答案

解晟
2023-03-14

看起来[ID,Name,Nickname]是值类型。在本例中,*NGFOR只使用它们的值,而不绑定到原始变量。如果仍然需要绑定,则应考虑将它们转换为引用类型。

例如,您可以将它们放入对象中,比如person或options,并使用KeyValuePipe迭代对象属性:如何使用*NGFOR迭代对象键

options: {[key: number]: string} = {ID: '1', Name: 'bar', Nickname: 'foo'};

<div *ngFor="let item of options | keyvalue">
 类似资料:
  • GridViewColumnExt是从GridViewColumn继承并添加可见性属性的类。 您可能会看到,我的ListView的ItemsSource被设置为寄存器ObservableCollection。Register类有一个名为vis的bool类型的属性。对于TextBox来说,这一切都很好,但是从GridViewColumnExt don来看,我认为我无法到达集合并绑定到特定的对象。 我

  • 我得到了这个错误 属性内的内插已被删除。改用v-bind或冒号速记。例如,代替

  • 假设我有一个非常大的单元格网格,我想添加数据行和数据集合值,并从模型绑定。如何从angular2(Dart中的beta0)绑定数据行。 绑定的数据行= " {{boundVal}}”似乎并不 例如。

  • 我首先想到的是,一个property_a不能绑定到另一个property_b,这个property_b绑定到property_a或者依赖于属性,这些属性绑定到property_a。对吧?

  • 我想通过使用@ConfigurationProperties注释将我的Application.Properties自动绑定到一个类中。首先,我尝试了@value注释,并能够将属性值注入类变量。但是,@ConfigurationProperties没有将属性注入到值中。 我的应用程序.属性: application.java ConfigBinder.java 输出: 这样的执行到底出了什么问题?

  • 我想解决的一般问题是,一个复选框只有一个datatemplate,然后我可以将它用于listview中的许多不同列(使用gridview)。在我所见过的所有示例中,每个绑定都创建了一个分离模板,这对我来说似乎有些过头了。 我一直试图通过创建gridviewcolumn将设置的附加属性来实现这一点。然后,我可以简单地为绑定到附加属性的复选框设置一个datatemplate。 我遇到的问题实际上是将复