Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Angular 4中封装每个实例的变量_Javascript_Angular_Typescript - Fatal编程技术网

Javascript 在Angular 4中封装每个实例的变量

Javascript 在Angular 4中封装每个实例的变量,javascript,angular,typescript,Javascript,Angular,Typescript,我有一个应用程序,其中一个ProductComponent作为列表重复多次。在此ProductComponent中,有一个名为this.showPriceLoadingText的公共boolean局部变量。 但是,当在实例中更新此变量时,列表中的所有其他实例都会更新。 我认为es6将变量封装在它所在的实例/范围内,显然不是 如何使此变量独立运行 class ProductComponent(){ public showBasketLoadingText: boolean; public a

我有一个应用程序,其中一个
ProductComponent
作为列表重复多次。在此
ProductComponent
中,有一个名为
this.showPriceLoadingText
的公共
boolean
局部变量。 但是,当在实例中更新此变量时,列表中的所有其他实例都会更新。 我认为es6将变量封装在它所在的实例/范围内,显然不是

如何使此变量独立运行

class ProductComponent(){

 public showBasketLoadingText: boolean;
 public addingToBasketText: string = "";

 constructor() {
    this.showBasketLoadingText = false;
    this.addingToBasketText = environment.configurations.uiConfig.addingToBasketText;
 }

QuickAddtoCart(product: Product) {

    this.showBasketLoadingText = true;

    //DO STUFF

    let _self = this;
    setTimeout(function(){
        _self.showBasketLoadingText = false;
    }, 1000);
  }

}
HTML:

添加到篮子中
{{addingToBasketText}}
您应该使用这种方式(箭头符号)来保存

setTimeout(() => {this.showBasketLoadingText = false;}, 1000);

箭头函数没有它自己的函数;这个值是 使用封闭的执行上下文

您应该使用这种方式(箭头表示法)来保留此:

setTimeout(() => {this.showBasketLoadingText = false;}, 1000);

箭头函数没有它自己的函数;这个值是 使用封闭的执行上下文


我现在算出来了。。。我发现组件实际上只是一个产品列表,而不是单个产品。很抱歉浪费了你的时间

我现在已经解决了。。。我发现组件实际上只是一个产品列表,而不是单个产品。抱歉浪费您的时间

默认情况下变量是独立的。你需要向其他人展示你的代码,让他们知道为什么你的应用程序不是这样。问题已经更新,我已经删除了所有其他代码,试图简化代码。默认情况下,变量肯定是封装/独立的。如果你把它放在一个小瓶子里,它会很好用的。你代码中的其他部分被破坏了。我现在已经解决了。。。我发现组件实际上只是一个产品列表,而不是单个产品。很抱歉浪费了你的时间time@vicgoyso:您可以将此作为自己问题的答案发布,这可能会帮助其他面临相同问题的人。默认情况下,此变量是独立的。你需要向其他人展示你的代码,让他们知道为什么你的应用程序不是这样。问题已经更新,我已经删除了所有其他代码,试图简化代码。默认情况下,变量肯定是封装/独立的。如果你把它放在一个小瓶子里,它会很好用的。你代码中的其他部分被破坏了。我现在已经解决了。。。我发现组件实际上只是一个产品列表,而不是单个产品。很抱歉浪费了你的时间time@vicgoyso:您可以将此作为您自己问题的答案发布,它可能会帮助其他面临相同问题的人HI Pac0。。。是的,我确实想到了,因此。。。让_self=这个_self.showBasketLoadingText=false;我现在算出来了。。。我发现组件实际上只是一个产品列表,而不是单个产品。抱歉浪费了你的时间嗨Pac0。。。是的,我确实想到了,因此。。。让_self=这个_self.showBasketLoadingText=false;我现在算出来了。。。我发现组件实际上只是一个产品列表,而不是单个产品。抱歉浪费了你的时间