【问题标题】:Service injection and accessing data in AngularAngular 中的服务注入和访问数据
【发布时间】:2022-09-21 11:38:16
【问题描述】:

我对角度很陌生,虽然我现在正在做的事情有效,但不确定我是否遵循最佳实践。设想:

  • 员工服务:处理对后端的所有调用(getEmployees、getEmployee(id)、saveEmployee(employee))
  • 员工组件:列出所有员工(使用 ngFor)
  • Employee 组件:从列表中选择后显示所选员工的数据(具有双向绑定),允许编辑等。如果保存,则 getEmployees(重新加载列表)和 getEmployee(重新加载所选员工)都会叫做。

问题是,我找到了两种访问从服务后端获得的数据的方法,并且似乎都有效:

  1. 在服务中获取和存储数据。在组件构造函数中,我将服务添加为上市然后在模板中,我可以直接从服务访问数据变量。
  2. 在服务中获取数据,但我没有将其存储在那里,而是使用了一个主题。在组件中,我将服务添加为私人的, 订阅雇员员工并将数据存储在组件本身中。

    虽然选项 1 需要更少的代码,但我的印象是选项 2 是正确的做法。但是我不太确定这是否正确,如果是,为什么?我相信我在这里缺乏一些基本知识,当涉及到重新加载数据时,角度如何处理对 dom 的更新,从后端刷新。

    任何帮助,将不胜感激, 谢谢

【问题讨论】:

  • 请编辑问题以将其限制为具有足够详细信息的特定问题,以确定适当的答案。

标签: angular typescript angular14


【解决方案1】:

其实如果你只是想查看数据,你的事件不需要将数据存储在本地,你可以在服务中定义一个observable(http observable),并在组件中使用它,在模板上使用异步管道。

模板:

{{ 员工$ |异步 }}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-04
    • 1970-01-01
    • 2014-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-14
    相关资源
    最近更新 更多