Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用相同的数据到另一个页面而不调用服务?_Javascript_Angular_Typescript - Fatal编程技术网

Javascript 如何使用相同的数据到另一个页面而不调用服务?

Javascript 如何使用相同的数据到另一个页面而不调用服务?,javascript,angular,typescript,Javascript,Angular,Typescript,我需要在我的项目上使用click事件将包含更多信息的相同数据传递到另一个页面 我试着把班上的父亲延伸到孩子身上,但是太慢了,因为这个班叫了很多次 该应用程序是一个仪表板,带有以模板html导入的外部小部件,每个小部件都需要使用相同的数据 我考虑使用一个包含所有后端调用的容器,例如使用模块,但没有成功。。有什么建议吗?我建议您使用ngrx/ngxs之类的工具。 这将允许您拥有一个全局状态,您可以在应用程序的每个位置访问该状态,以便轻松共享该状态。我建议您只使用ngrx/ngxs之类的工具。 这将允

我需要在我的项目上使用click事件将包含更多信息的相同数据传递到另一个页面

我试着把班上的父亲延伸到孩子身上,但是太慢了,因为这个班叫了很多次

该应用程序是一个仪表板,带有以模板html导入的外部小部件,每个小部件都需要使用相同的数据


我考虑使用一个包含所有后端调用的容器,例如使用模块,但没有成功。。有什么建议吗?

我建议您使用ngrx/ngxs之类的工具。
这将允许您拥有一个全局状态,您可以在应用程序的每个位置访问该状态,以便轻松共享该状态。

我建议您只使用ngrx/ngxs之类的工具。
这将允许您拥有一个全局状态,您可以在应用程序的每个位置访问该状态,以便轻松共享状态。

服务通常是组件在应用程序中交换数据的方式。但如果组件具有父子关系,则可以使用
@input()

请参见

服务通常是组件以角度交换数据的方式。但如果组件具有父子关系,则可以使用
@input()

参见

Maryannah,假设您可以构建“缓存”。 正常服务中的函数类似于

getData()
{
    return httpClient.get(....);
}
您可以使用变量来存储httpClient的结果

data:any[]
getData()
{
    if (!data)
       return httpClient.get(....).pipe(tap(result=>{
          this.data=result;
       }))
    return of(this.data)
}

因此,当您第一次向服务器订阅服务调用时,另一次,您收到了一个可观察到的数据,并且已经读取了。Maryannah说,您可以构建一个“缓存”。 正常服务中的函数类似于

getData()
{
    return httpClient.get(....);
}
您可以使用变量来存储httpClient的结果

data:any[]
getData()
{
    if (!data)
       return httpClient.get(....).pipe(tap(result=>{
          this.data=result;
       }))
    return of(this.data)
}
因此,当您第一次订阅对服务器的服务调用时,另一次,您收到了一个尚未读取的可观察数据

Rx/js行为主题可以解决您的问题。角状物 实践建议您避免组件内部的任何逻辑 它与视图没有直接关系。你应该把这些都搬走 逻辑到服务。 行为主体持有需要与其他人共享的值 组件。这些组件订阅简单的数据 将不带功能的行为主体值返回到 更改值

Rx/js行为主题可以解决您的问题。角状物 实践建议您避免组件内部的任何逻辑 它与视图没有直接关系。你应该把这些都搬走 逻辑到服务。 行为主体持有需要与其他人共享的值 组件。这些组件订阅简单的数据 将不带功能的行为主体值返回到 更改值


我需要在每个组件中使用提供者吗?结构是:projejct.module->project-details.component(其中包含其他组件,因此它是一个容器)是的,这是提供程序的用途。在Angular中创建一个服务会创建一个单例,它充当状态保持器:通过在这个服务中放置变量,您可以使注入这个服务的任何组件都可以使用它们?我的提供者有函数和api,如果我在每个孩子中使用提供者,我是否调用提供者中包含的所有内容?或者我需要创建多个提供程序?在不了解您的需求的情况下,我无法回答这个问题,但大多数情况下,您只需调用一次,然后将其存储在变量中,然后在应用程序中使用此变量。我需要在每个组件中使用提供程序?结构是:projejct.module->project-details.component(其中包含其他组件,因此它是一个容器)是的,这是提供程序的用途。在Angular中创建一个服务会创建一个单例,它充当状态保持器:通过在这个服务中放置变量,您可以使注入这个服务的任何组件都可以使用它们?我的提供者有函数和api,如果我在每个孩子中使用提供者,我是否调用提供者中包含的所有内容?或者我需要创建多个提供者?如果不知道您的需要,我无法回答这个问题,但大多数情况下,您只需调用一次,然后将其存储在变量中,然后在应用程序中使用此变量。