我应该将角模型设为私有属性和构造函数吗?

时间:2019-01-30 12:27:04

标签: angular

我知道通常最好的做法是将属性设为私有,并使用getter和setter方法,但是我在在线教程中看到的是,模型是通过以下方式完成的:

export class UserModel{
   name: string,
}

我应该这样吗?

export class UserModel{
   private name: string;
   constructor(name){ this.name = name}
   getName(){ return this.name}
   setName(name) { this.name = name}

对于Angular来说,这是更好的做法,请注意,当我使用第一个时,与服务等一起使用时要容易得多。

2 个答案:

答案 0 :(得分:1)

我通常定义一个接口,而不是仅定义属性的类:

export interface UserModel{
   name: string;
}

仅当我需要在getter / setter中有一些逻辑或者如果值来自其他地方(例如服务)并且我想确保自己始终具有最新值时,才使用getter / setter。

在这里,我要确保在服务中更新绑定的searchTerm。如果另一个组件更新了该服务,那我总是从该服务获取当前值。

  get searchTerm(): string {
    return this.dataService.serviceData;
  }

  set searchTerm(value: string) {
    this.dataService.serviceData = value;
  }

答案 1 :(得分:0)