Javascript Angular2:属性绑定什么时候发生?
我只是从Angular2开始,读官方文件。然而,我还没有找到关于绑定如何以及何时发生的具体细节,而且事情似乎不像我预期的那样工作 我有一个简单的子组件Javascript Angular2:属性绑定什么时候发生?,javascript,angular,typescript,Javascript,Angular,Typescript,我只是从Angular2开始,读官方文件。然而,我还没有找到关于绑定如何以及何时发生的具体细节,而且事情似乎不像我预期的那样工作 我有一个简单的子组件 @Component({ selector: 'dummy', template: ` <div>{{data}}</div> ` }) export class Dummy { @Input() data; } @组件({ 选择器:“dummy”, 模板:` {{data}} ` }) 导出类
@Component({
selector: 'dummy',
template: `
<div>{{data}}</div>
`
})
export class Dummy {
@Input() data;
}
@组件({
选择器:“dummy”,
模板:`
{{data}}
`
})
导出类虚拟{
@输入()数据;
}
和根组件
@Component({
selector: 'main',
template: `
<h1>hello</h1>
<dummy [data]="data"></dummy>
`
})
export class MainComponent {
data: string = "initial text";
ngOnInit() {
setTimeout(this.initData, 5000);
}
initData() {
this.data = "new text";
}
}
@组件({
选择器:'main',
模板:`
你好
`
})
导出类主组件{
数据:string=“初始文本”;
恩戈尼尼特(){
setTimeout(this.initData,5000);
}
initData(){
this.data=“新文本”;
}
}
我希望子组件显示的文本在5秒后会发生变化,但事实并非如此。我做错了什么?文档是否解释了何时以及在什么条件下初始化和更新绑定值?您正在丢失此
的上下文。当setTimeout
回调运行时,此
不再指向组件。您可能需要检查一下javascript这个问题
尝试:
您正在丢失此
的上下文。当setTimeout
回调运行时,此
不再指向组件。您可能需要检查一下javascript这个问题
尝试:
您忘记导入OnInit接口并使组件实现它
从'@angular/core'导入{Component,OnInit}代码>
然后
export类MainComponent实现OnInit{…}
您忘记导入OnInit接口并让组件实现它
从'@angular/core'导入{Component,OnInit}代码>
然后
export类MainComponent实现OnInit{…}
然而,这不是问题所在。它只用于类型检查的接口,函数ngOnInit
称为regardlessHowever,这不是问题所在。它仅用于类型检查的接口,调用函数ngOnInit
regardless@blue_note,这个答案是正确的,请参阅我创建的plunkr示例,@blue_注意,这个答案是正确的,请参阅我创建的plunkr示例,查看有关的文章。对于您的示例,您需要要求angular检查更改。为此,注入ChangeDetectorRef并调用markForChanges()方法。阅读文章了解更多信息。@BuDen:谢谢!!你知道它在官方文档中的什么地方描述了变更检测吗?你可以查看文档,因为它没有几个例子。查看关于变更检测的文章。对于您的示例,您需要要求angular检查更改。为此,注入ChangeDetectorRef并调用markForChanges()方法。阅读文章了解更多信息。@BuDen:谢谢!!您知道它在官方文档中的什么地方描述了变更检测吗?您可以查看文档,因为它没有几个示例。
setTimeout(()=>{
this.data = "new text";
},5000);