当前位置:  开发笔记 > 编程语言 > 正文

Angular 2 @Input get的很多

如何解决《Angular2@Inputget的很多》经验,为你挑选了1个好方法。

我正在使用Angular 2,并且正在使用一些getter和setter在组件之间进行通信。我遇到了很多问题,尽管它们不依赖任何东西,但它们经常运行getter和setter函数。难道我做错了什么?

对于getter函数,我只有以下代码:

 private get SomeData(): string {
        console.log("Getter called");
        return "some string";
 }

设置器代码为:

@Input()
public set SomeData(newData: string) {
    console.log("Setter called");
}

绑定是:


控制台显示调用了Getter的方法,调用了Setter的方法,然后显示了20条Getter的方法。为什么叫这些?



1> Günter Zöchb..:

问题是由

private get SomeData(): string {
    console.log("Getter called");
    return "some string";
}

因为每次更改检测检查值是否已更改时,它都会返回一个新的字符串实例

如果将代码更改为

private someData:string = "some string";
private get SomeData(): string {
    console.log("Getter called");
    return this.someData;
}

则每次都会返回相同的字符串实例,Angular将其识别为未更改,除非someData更改,否则不会调用setter 。

推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有