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;我现在算出来了。。。我发现组件实际上只是一个产品列表,而不是单个产品。抱歉浪费了你的时间