最佳答案
我在一个顶级组件中有一个属性,它使用来自 HTTP 源的数据,如下所示(这在一个名为 app.ts
的文件中) :
import {UserData} from './services/user-data/UserData';
Component({
selector: 'app', // <app></app>
providers: [...FORM_PROVIDERS],
directives: [...ROUTER_DIRECTIVES],
pipes: [],
template: require('./app.html')
})
@RouteConfig([
// stuff here
])
export class App {
// Please note that UserData is an Injectable Service I have written
userStatus: UserStatus;
constructor(private userData: UserData) {
this.userStatus = new UserStatus();
}
ngOnInit() {
this.userData.getUserStatus()
.subscribe(
(status) => {
this.userStatus = status; // I want to access this in my Child Components...
},
(err) => {console.log(err);},
() => {console.log("User status complete"); }
);
}
}
现在,我有另一个 Component,它是顶级 Component 的直接子组件,在它里面,我想访问父组件的属性‘ userStatus
’,这是子组件:
Component({
selector: 'profile',
template: require('app/components/profile/profile.html'),
providers: [],
directives: [],
pipes: []
})
export class Profile implements OnInit {
constructor() {
}
ngOnInit() {
// I want to have access with the parent App Component, 'userStatus' propety here... I only want to read this property
}
}
现在在角1.x 这将是很容易的,因为我可以参考 $parent
在我的子控制器或(反模式警报! ! !) ,我可以是如此愚蠢地把这个数据在我的 $rootScope
。
在角度2中,访问父节点的最佳方式是什么?