Angular 2 ngOnchange事件被称为无法改变

时间:2018-08-09 11:27:26

标签: angular typescript

大家好,

我正面临一个问题,因为我是Angular的新手,所以可能是我所缺少的。

在我的应用程序中,无论发生任何更改,都将调用子组件ngOnChanges之一,在下面的屏幕快照中,您将发现changes对象的所有currentValues和previousvalues属性都是相同的。

让我知道我是否想念一些东西。

也请参考以下代码

谢谢

从'@ angular / core'导入{组件,输入,SimpleChanges,OnInit}; 从@ angular / core / src / metadata / lifecycle_hooks'导入{OnChanges,OnDestroy};

@Component({
selector: 'xxxxxx',
templateUrl: './result.component.html',
styleUrls: ['./result.component.css']    

})

export class ResultComponent implements OnInit, OnChanges, OnDestroy {


@Input()
searchResults: SearchResults.SearchResult;

@Input()
searchText: string;

@Input()
loading: boolean = false;

ngOnInit() {
    var logger = "stop me debugger";
}


ngOnChanges(changes: SimpleChanges) {

    if (changes.searchResults && !changes.searchResults.firstChange) {


    }
}


ngOnDestroy(): void {
    var logger = "stop me debugger";
}



constructor() {


}

}

enter image description here

1 个答案:

答案 0 :(得分:0)

生命周期挂钩ngOnChanges

  

当Angular(重新)设置数据绑定的输入属性时响应。该方法接收当前和先前属性值的SimpleChanges对象。
  在ngOnInit()之前以及每当一个或多个数据绑定输入属性更改时调用。

     

Angular Lifecycle Hooks

由于此,并且您的某些属性是输入,因此ngOnChanges被调用。这就是previousValue对象的currentValue SimpleChanges的原因。