Angular 角度数据绑定对象的私有属性

Angular 角度数据绑定对象的私有属性,angular,angular6,Angular,Angular6,此类具有私有属性和gettersetter方法 seasure.ts: export class Season { private _seasonId: number; private _name: string; get seasonId(): number { return this._seasonId; } set seasonId(value: number) { this._seasonId = value; } get name

此类具有私有属性和gettersetter方法

seasure.ts:

export class Season {

  private _seasonId: number;
  private _name: string;  

  get seasonId(): number {
    return this._seasonId;
  }

  set seasonId(value: number) {
    this._seasonId = value;
  }

  get name(): string {
    return this._name;
  }

  set name(value: string) {
    this._name = value;
  }

}
我有一个组件来展示它:

@Component({
  selector: 'app-season',
  templateUrl: './season.component.html',
  styleUrls: ['./season.component.css']
})
export class SeasonComponent implements OnInit {


  season: Season = new Season();
  seasons: Season[] = [];

 //....

 // There is some stuff to fill 'seasons' array 
  private addSeason(seasonForm: NgForm) {
    if (!this.isUpdateMode) {
      this.addNewMemberToSeasons();
    } else {
      this.editSeasonsMember();
    }
    this.seasonsChange.emit(this.seasons.slice());
    this.resetSeasonForm(seasonForm);
  }

  private editSeasonsMember() {
    const editIndex = this.seasons.findIndex((s) => s.seasonId === this.season.seasonId);
    this.seasons[editIndex] = Object.assign({}, this.season);
  }

  private addNewMemberToSeasons() {
    const clone = Object.assign({}, this.season);
    this.seasons.push(clone);
  }
 // ...
HTML

<li class="list-group-item ..." *ngFor="let season of seasons">
    <div>
      <h6 class="my-0">{{season.name}}</h6>
    </div>
    <span>
            <span class="btn-group-sm" role="group">
              <button type="button" class="btn-sm btn-outline-warning"
                      (click)="editSeason(season.name)">Edit</button>
              <button type="button" class="btn-sm btn-outline-danger"
                      (click)="deleteSeason(season.name)">Delete</button>
            </span>
          </span>
  </li>
如何使用插值绑定渲染具有私有属性的对象?

我用的是角度6

这是你的电话号码


很抱歉,为了可读性,我没有添加一些重要的
组件方法。我已经用方法更新了问题。事实上,问题就在这里:

const clone = Object.assign({}, this.season);
this.seasons.push(clone);

感谢用户184994。

你是说
{{seasure.name}}
不起作用?你能在StackBlitz中复制吗?我从未使用过StackBlitz,但我会尝试。是的,
{seasure.name}
不起作用。在Typescript中,当成员标记为private时,不能从其包含类之外访问它。@Und3rTow是的,问题是
get
访问器在
{seasure.name}
@MuhammedOzdogan中执行
对象.assign
,,您将丢失访问器,因此它将不再具有
get
功能
const clone = Object.assign({}, this.season);
this.seasons.push(clone);