How To Setup a Two Way Binding To a Valid Reference but Empty/ New Object
How does one properly setup the binding to a class object where all properties are valid but empty?
Works ...If the component is declared as such:
export class BioComponent implements OnInit {
 bio : Bio  = { id : 1, FirstName : "", LastName : ""};
  constructor() { }
  ngOnInit() {
  }
}
In the view as the user edits, the following bindings work and the third line below shows what the user has typed in.
<td><input [(ngModel)]="bio.FirstName" placeholder="Your first name"></td>
<td><input [(ngModel)]="bio.LastName" placeholder="Your last name"></td>
<td>{{bio.FirstName + ' ' + bio.LastName}}</td>
Fails
 If bio : Bio = new Bio();  is set, then the third item shows undefined undefined until the user types in something to each of the inputs.  
 To Sum Up I don't want to have to have things like FirstName : "", property declarations for each property.  How does one new up a new object in Angular/TypeScript?  
You can define and initialize the data members in the constructor, with default values:
export class Bio {
  constructor(
    public id: number = 0, 
    public firstName: string = '', 
    public lastName: string = '') {
  }
}
 You can create Bio objects as follows:  
bio1 = new Bio();
bio2 = new Bio(1);
bio3 = new Bio(2, 'Robert');
bio4 = new Bio(3, 'Jane', 'Smith');
You can see the code at work in this stackblitz.
 You can in your Bio class setup a default value.  
export class Bio {
  id: number;
  firstName: string;
  lastName: string;
  constructor(id: number = 0, first: string = '', last: string = '') {
      this.id = id;
      this.firstName = first;
      this.lastName = last;
  }
}
then in your component
 bio: Bio = new Bio(); will be initialized with defaults.  
上一篇: 深拷贝和浅拷贝之间有什么区别?
