HY!
我可以通过属性指令和输入共享父容器的属性,但如果子组件被<router-outlet>
拉入,则它不起作用。有关如何与每个组件共享的任何建议吗?
顺便说一句,我在app.component中使用异步调用获取全局用户。
答案 0 :(得分:3)
在这种情况下,请使用https://angular.io/docs/ts/latest/cookbook/component-communication.html
中说明的共享服务@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 */
}
答案 1 :(得分:3)
使用服务怎么样?只需编写一个服务(让我们称之为UserService),将其附加到AppComponent
的{{1}}数组(因此它只会为应用程序创建一次并且是单例)。 / p>
假设使用TypeScript,viewProviders
类必须使用UserService
进行修饰,以便您可以在任何组件和其他服务中自动连接它。将全局用户对象存储为实例变量。这很好,因为您现在可以在一个地方处理您的用户对象。