每次出现视图时都会触发哪种方法 - Nativescript Angular

时间:2017-11-26 05:11:52

标签: angular nativescript

我来自iOS背景,我是 Nativescript 的新手。我想知道在Nativescript中有没有与iOS viewWillAppear 等效的方法。

我想在每次出现视图时更新listview。 我试过以下方法。没有什么能做到这一点

ngOnInit(): void {
  console.log("onInit called");  
}
ngDoCheck(): void{
    console.log("ngDoCheck called");
}
ngAfterContentInit(): void{
    console.log("ngAfterContentInit called");
}
ngAfterContentChecked():void{
    console.log("ngAfterContentChecked called");
}
ngAfterViewInit():void{
    console.log("ngAfterViewInit called");
}
ngAfterViewChecked(): void{
    console.log("ngAfterViewChecked called");
}
ngOnDestroy():void{
    console.log("ngOnDestroy called");
}

3 个答案:

答案 0 :(得分:1)

您可以使用NativeScript loaded事件(API reference

<ListView (loaded)="onListViewLoaded($event)"></ListView>

然后在组件文件

onListViewLoaded(args) {
    let list = <ListView>args.object;
}

答案 1 :(得分:0)

Angular使用变更检测来检查视图。

https://blog.angularindepth.com/everything-you-need-to-know-about-change-detection-in-angular-8006c51d206f

您可以使用以下

export class AppComponent implements OnChanges { 
  ngOnChanges(){
    console.log("fired"); // fired each time change detection runs
  }
}

Working Example

答案 2 :(得分:0)

我不是nativescript的专家,我会尝试使用Angular回答你。

一旦创建组件,Angular就会带来组件生命周期。因此,如果您销毁组件并再次重新创建它,则可以使用ngAfterViewInit。

或者如果您只创建一次组件并隐藏/显示它,您应该使用Angular指令来改变视图的可见性属性。

注意:如果您为组件提供了任何输入属性,它将在显示/隐藏组件时更改您可以使用ngOnChanges,但只有在任何组件输入参数更改或组件放置在更改的检测树上时,Angular才会调用它。 / p>