Dependency injection 每个组件中的Angular2全局用户对象

Dependency injection 每个组件中的Angular2全局用户对象,dependency-injection,angular,angular2-routing,angular2-directives,Dependency Injection,Angular,Angular2 Routing,Angular2 Directives,嘿! 我可以通过属性指令和输入共享父容器的属性,但如果子组件被拉入,则该属性不起作用。有没有关于如何与每个组件共享的建议 顺便说一句,我在app.component中通过异步调用获得全局用户。在这种情况下,使用如中所述的共享服务 在这种情况下,请使用如中所述的共享服务 使用服务怎么样?只需编写一个服务(我们称之为UserService),将其附加到AppComponents数组的viewProviders(因此它只为应用程序创建一次,并且是一个单例) 假设使用TypeScript,UserSer

嘿! 我可以通过属性指令和输入共享父容器的属性,但如果子组件被
拉入,则该属性不起作用。有没有关于如何与每个组件共享的建议


顺便说一句,我在app.component中通过异步调用获得全局用户。

在这种情况下,使用如中所述的共享服务


在这种情况下,请使用如中所述的共享服务


使用服务怎么样?只需编写一个服务(我们称之为UserService),将其附加到
AppComponent
s数组的
viewProviders
(因此它只为应用程序创建一次,并且是一个单例)


假设使用TypeScript,
UserService
类必须用
@Injectable()
修饰,这样您就可以在任何组件和其他服务中自动连接它。将全局用户对象作为实例变量存储在其中。这很好,因为您现在可以在一个地方处理您的用户对象。

使用服务怎么样?只需编写一个服务(我们称之为UserService),将其附加到
AppComponent
s数组的
viewProviders
(因此它只为应用程序创建一次,并且是一个单例)


假设使用TypeScript,
UserService
类必须用
@Injectable()
修饰,这样您就可以在任何组件和其他服务中自动连接它。将全局用户对象作为实例变量存储在其中。这很好,因为您现在可以在一个地方处理您的用户对象。

非常感谢,我很笨。。我使用一个服务通过异步获取用户Obj,但没有想到该服务可以在获取一次对象后存储该对象,并且只返回对象本身。:)非常感谢,我当时很笨。。我使用一个服务通过异步获取用户Obj,但没有想到该服务可以在获取一次对象后存储该对象,并且只返回对象本身。:)也谢谢你,我接受了@JoVer的回答,因为他更快。你们两个都帮我找到了解决办法。也谢谢你们,我接受了@JoVer的回答,因为他更快。你们俩都帮我找到了解决办法。
@Injectable()
export class User {
  ...
}

@Component({
  selector: 'my-app',
  providers: [User],
  ...
})
export class AppComponent {}


@Component({
  selector: 'routed-comp',
  providers: [],
  ...
})
export class RoutedComponent {
  constructor(private user:User) {}

  /* use this.User here */
}