我的第一个,
<modal [hero]="imageId"></modal>-->
我的first.component.ts,
export class CommonComponent {
photodata:any;
imageId:any = '2';
}
我的model.component.ts,
@Component({
selector: 'modal',
templateUrl: './app/modal/modal.component.html',
providers: [HeaderClass]
})
export class ModalComponent implements OnInit {
@Input() hero: string;
console.log(hero)--->Undefined
constructor(){
console.log(this.hero)---->undefined
}
ngOnInit(){
console.log(this.hero)---->2
}
}
这里当我在ngOnInit上控制它时它显示了值但是当我做同样的方面时它表示undefined。我从firstcomponent访问这个模态组件但是英雄值没有改变它保持相同的值,因为它是在ngOninit()?.任何人都可以帮助我。谢谢。
答案 0 :(得分:0)
https://angular.io/docs/ts/latest/guide/lifecycle-hooks.html#!#oninit
使用ngOnInit()有两个主要原因:
在施工后不久执行复杂的初始化。
- 醇>
在Angular设置输入属性后设置组件。
答案 1 :(得分:0)
您的代码看起来是正确的。您以正确的方式访问指令值,但您似乎希望在构造函数中设置它。您需要了解的是,您的组件已构建(也称为构造函数),然后已初始化(包括检索@Input属性)。
因此,在undefined
执行之前获取ngOnInit()
是预期的行为。之后,您的hero
变量将设置为输入值。
我可能会错过理解您关于价值保持不变的问题,但只要您不更新imageId
变量(以及输入),就没有理由hero
应该改变。