【问题标题】:Angular 7 - Change value of received data from databaseAngular 7 - 更改从数据库接收到的数据的值
【发布时间】:2019-05-24 08:49:43
【问题描述】:

在 app.component.ts 我通过 API 接收数据:

export class AppComponent implements OnInit{

 constructor(private http: HttpClient){}
 items: Object;
  getApi(){
   return this.http.get("https://reqres.in/api/user");
  }
ngOnInit(){
  this.getApi().subscribe( data => {
    this.items = data
    console.log(this.items)
  })
 }
}

在我的 app.component.html 中,我输出了该数据:

<ul *ngIf="items">
   <li *ngFor="let item of items.data">
      {{ item.id }} {{ item.name }} {{ item.year }}
   </li>
</ul>

我的问题是,是否可以使用连接到 id 整数的字符串来更改 id。 例如 id = 1 => 1 表示字符串“一”,id = 2 => 表示字符串“二”。

遗憾的是,我不知道如何将接收到的数据的值更改为新值。

我希望清楚我想要实现的目标,如果没有,请随时询问!

我希望你能帮助我。谢谢!

【问题讨论】:

  • 你想把数字变成单词吗?
  • @Oen44 正确,这只是一个真实项目的示例。

标签: angular typescript api


【解决方案1】:

如果您知道要映射的所有值,则可以在组件中创建一个字典来处理映射。

myMap = {
    1: "one",
    2: "two"
};

然后在你的 HTML 中

<ul *ngIf="items">
   <li *ngFor="let item of items.data">
      {{ myMap[item.id] }} {{ item.name }} {{ item.year }}
   </li>
</ul>

【讨论】:

  • 谢谢!看起来这是我需要的解决方案。我会测试它! ~ 成功了,谢谢!
  • 现在创建数百或数千个。
  • 我同意 Oen44。如果您想拥有多个“已知”映射,那么这绝对不是要走的路。
  • @Oen44 这只是一个例子。我没有真正的 API,但这正是我所需要的。谢谢你们!
【解决方案2】:

number-to-words 可以解决问题。您不必担心自己对名称进行编码。

var converter = require('number-to-words');

ngOnInit(){
  this.getApi().subscribe( data => {
    this.items = data;
    this.items.forEach((item, index) => {
        this.items[index].id = converter.toWords(item.id);
    })
  })
 }

【讨论】:

  • 谢谢!我会记住它以防万一我需要它,但我认为映射是正确的方法,因为稍后我将只有 6 个案例,并且每个案例只有一个值。我没有任何 API,所以我不得不在互联网上获取一个,所以这个问题可能有点令人困惑。 ~ 请原谅我。
猜你喜欢
  • 2018-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-19
  • 1970-01-01
相关资源
最近更新 更多