Angular 5 应用程序的任何组件访问数据。正在通过身份验证服务中的 API 调用设置数据

     2023-03-13     149

关键词:

【中文标题】Angular 5 应用程序的任何组件访问数据。正在通过身份验证服务中的 API 调用设置数据【英文标题】:Data accessing by any components of angular 5 application. Data is being set via a API call inside auth service 【发布时间】:2019-01-21 23:33:47 【问题描述】:

我有一个共享的身份验证服务,它由我的 Angular 5 应用程序中的所有组件注入。我的身份验证服务中的变量很少。我在身份验证服务中调用 api 并将响应值设置为变量。现在我想从我的应用程序中随时从任何组件访问这些变量的值。我不想使用本地存储或会话存储。

【问题讨论】:

【参考方案1】:

我发现在处理 HTTP 调用时,使用 Promise 更容易推理事物 - 所以我将给你一个使用 Promise 的解决方案。

class UserService 
    private userData;
    private userDataPromise;

    getUserData(...)
        if(this.userData)
            return Promise.resolve(this.userData); //if we have the data, just return it
        

        if(this.userDataPromise)
            // in case the call to the api is in progress, we don't want to make a new one.
            return this.userDataPromise;
        

        this.userDataPromise = this.http.get(...).toPromise()
                                   .then((data) => this.userData = data)
                                   .finally(() => this.userDataPromise = undefined);
        return this.userDataPromise;
    

例如,一旦用户注销,您就可以重置数据。

HTH

【讨论】:

在Angular 5中访问组件中的javascript变量

...r5【发布时间】:2018-08-1200:42:31【问题描述】:我的Angular应用程序中有一个js文件data.js。这个js文件中声明了一些变量,如下所示。vardata=\'test\'现在我必须在我的组件(app.component.ts)中访问这些变量及其值。我读过 查看详情

如何根据angular中一个组件中的click事件更改其他组件中的数据?(代码片段)

我是Angular的初学者,我开发了一个Angular4/5应用程序,由5个组件组成:A,B,C,D和E.所有这些组件都显示在单个(相同)页面上。组件A由导航栏中的下拉列表组成。现在,我要做的是,在组件A的下拉列表中选择任何特定选项后... 查看详情

Angular 5 socket.io 未收到其他组件中的更新

...题描述】:上下文:我在nodejs中有一个带有后端的Angular应用程序。我有一个提要,当我收到来自服务器的消息时会更新。当插入新数据时,服务器会收到通知,但我的其他组件没有收到任何内容。我已经在注入两个组件的 查看详情

Angular 5通过服务在组件之间进行通信

...】:2018-08-0718:40:39【问题描述】:我正在开发一个Angular5应用程序,并且我有一个用于存储我的数据的API。问题是我有两个组件,一个用于显示数据,一个用于发布数据。它们都通过具有两个功能的服务与API交互:addCandidate(candid 查看详情

Angular 5 - 将数据存储在服务而不是组件中?

...布时间】:2019-02-0400:55:52【问题描述】:在我的AngularJS1.5应用程序中,我有一些直接链接到服务数据的控制器数据。当用户点击页面时,控制器在服务中调用init,然后调用数据服务从服务器获取数据。例如//insidecontroller$ 查看详情

Angular 13 - 数据可在组件内部访问,但未显示在 html 页面上

...描述】:所以,我现在正在学习Angular,并尝试做一个CRUD应用程序。几乎一切正常,除了尝试使用ID获取数据时,我可以访问component.ts文件中的所有数 查看详情

Angular 5:从组件访问元素内部 html 以获取动态生成的元素

】Angular5:从组件访问元素内部html以获取动态生成的元素【英文标题】:Angular5:Accesselementinnerhtmlfromthecomponentfordynamicallygeneratedelements【发布时间】:2019-01-1005:55:57【问题描述】:我的组件中有一个角度组件,我需要访问元素的内... 查看详情

如何在 Angular 1.5 中从父控制器访问组件方法

】如何在Angular1.5中从父控制器访问组件方法【英文标题】:HowtoaccesscomponentmethodsfromparentcontrollerinAngular1.5【发布时间】:2017-01-2518:16:09【问题描述】:我有子组件MyStats,它以列表作为输入数据并显示有关该列表的统计信息。当my... 查看详情

如何从 Angular 6 中的父组件访问子组件中的表单?

】如何从Angular6中的父组件访问子组件中的表单?【英文标题】:Howtoaccessforminchildcomponentfromparentcomponentinangular6?【发布时间】:2019-06-2603:12:37【问题描述】:我的问题是我的父组件有一个父组件和许多子组件。父组件没有任何表... 查看详情

在 JHipster Angular 的主要组件中的“路由器插座”之外访问 Principal

...发布时间】:2019-05-0408:34:43【问题描述】:我正在生成的应用程序中更改JHipster布局。我可以将Principal注入到router-outlet内呈现的任何组件中 查看详情

如何根据Angular中一个组件中的点击事件更改其他组件中的数据?

...问题描述】:我是Angular的初学者,我开发了一个Angular4/5应用程序,它包含5个组件:A、B、C、D和E。所有这些组件都显示在一个(相同的)页面上。 查看详情

angular ngbuild prod 未加载任何模块

...布时间】:2020-09-2906:15:15【问题描述】:在本地运行我的应用程序工作正常,当我执行ngbuild--prod时,一切都在正确编译,但只显示第一个组件。我无法访问任何其他路线(既不能导航到路径也不能与第一个组件交互)。我正在... 查看详情

angular5数据从组件的一个子组件访问组件(代码片段)

我有以下组件结构;RecipeDetailComponentRecipeListComponentRecipeItemComponent(此Component是RecipeList的子代)RecipeComponent并希望将数据RecipeItemComponent传递给RecipeDetailComponent。这样做的主要方法是在RecipeItemComponent创建@Output(), 查看详情

Angular 5 - 如何在初始化后重新加载组件

...itialized【发布时间】:2018-08-1322:14:46【问题描述】:我在应用程序中有搜索功能。当用户单击搜索按钮时,数据将在[(ngModel)]中捕获并传递给服务。URL被重定向到SearchComponent的HTML。这个服务被注入到SearchComponent中并显示数据。 查看详情

单击组件上的任何位置时Angular5奇怪的滚动-Chrome

...【发布时间】:2019-02-0301:51:08【问题描述】:我正在我的应用程序中添加一个新组件(这是一个已经投入生产的应用程序)我的组件有问题。每次我单击组件中的任何位置时,看起来角核心中的某些东西都会导致滚动到页面顶部... 查看详情

Angular 1.5 组件:基于组件的应用程序架构

】Angular1.5组件:基于组件的应用程序架构【英文标题】:Angular1.5components:Componentbasedapplicationarchitecture【发布时间】:2017-01-1116:38:21【问题描述】:根据Angular1.5documentation组件应该只控制自己的View和Data。除了更改传递给组件的对... 查看详情

Angular2从另一个组件访问变量

】Angular2从另一个组件访问变量【英文标题】:Angular2accessvariablesfromanothercomponent【发布时间】:2016-09-1610:45:54【问题描述】:尝试了EventEmitter,但没有机会,文档也很少...任何帮助表示赞赏我有一个名为侧边栏的组件和另一个名... 查看详情

Angular 5 无法加载子组件

】Angular5无法加载子组件【英文标题】:Angular5can\'tloadchildComponents【发布时间】:2018-08-1220:07:57【问题描述】:我正在尝试加载内部组件:app/stores/store/store-top.component一旦用户单击列表中的任何商店,我希望在商店组件中显示商... 查看详情