【问题标题】:Where to store an array of object, which is part of an another object in angular2?在哪里存储对象数组,它是 angular2 中另一个对象的一部分?
【发布时间】:2018-02-02 13:25:55
【问题描述】:

我有一个公司的对象。在这个对象中,我还有一些其他对象..

object{
 country {
         country_code: string;
         country_name: string
 }, 
 yearlyIncome {
         id: number;
         amount: string;
 }, 
 ...
}

在我的项目中,您可以创建新公司或编辑现有公司。我在下拉列表中使用这些对象。因此,您无需将这些数据写入文本字段,而是在下拉列表中选择国家/地区,选择年收入类别,例如 0-1000 美元、1000-5000 美元、...。 所以这个对象有默认数据,但我不知道在哪里存储这些数据。我不认为将这些数据存储在数据库中是个好主意,因为这些数据不会改变。所以我想将默认数据写入代码。但是去哪里?为每个对象创建模型和服务?但如果我这样做,就会有很多模型和服务。存储在公司服务中?但那时公司服务会很长。 我该如何解决这个问题?

【问题讨论】:

  • 所以你想在某处存储下拉数据?我会将它们存储在数据库中,并让服务将它们放入您的构造函数中。
  • 另外,如果可能的话,我会创建一个管理页面,允许您编辑下拉值。这样您就不必在它们更改时访问数据库来编辑它们。因为他们会改变。

标签: arrays angular object angular5


【解决方案1】:

将默认值存储在数据库中并使用服务获取值:

ngOnInit(){
    this.countries$ = this.companyService.getDefaultCountries();
    this.incomeRanges$ = this.companyService.getDefaultIncomeRanges();
}

确保您的后端缓存这些值。 如果你使用 Express.js,你可以使用apicache

然后在您的模板中,您可以使用它来初始化您的下拉菜单

<select>
        <option *ngFor="let country of countries$ | async" value="country">{{country.name}}</option>
</select>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-02
    相关资源
    最近更新 更多