gpt4 book ai didi

javascript - 只能从复选框事件访问一个类变量

转载 作者:行者123 更新时间:2023-12-03 03:07:09 24 4
gpt4 key购买 nike

我确信这是一个菜鸟错误,所以请原谅我,因为我是 AngularJS 的新手(本周)。

我有一个输入,它是一个如下所示的复选框,它连接到 ng-change 事件。

<input type="checkbox" ng-model="vm.hasCondoKey" ng-change="vm.onKeyCheckboxChange()" />

That^ 事件触发并运行 Controller 中的“onKeyCheckBoxChange”函数。

export class CondoKeyController {

public condoKey: AdditionalItemModel;
public additionalItems: AdditionalItemModel[];
public hasCondoKey: boolean = false;

static $inject = ["$scope","CondoKeyService"];

constructor($scope: any, CondoKeyService: ICondoKeyService) {

$scope.additionalItems.forEach((addOn: AdditionalItemModel, index: number, addOnArray: AdditionalItemModel[]) => {

if (addOn.typeId === Models.AdditionalItemType.CONDO_KEY && addOn.quantity > 0) {
this.condoKey = addOn;
this.hasCondoKey = true;
}
});
}

public onKeyCheckboxChange(): void {
console.log("Checkbox changed.");
if(this.hasCondoKey === true) {
this.condoKey.typeId = AdditionalItemType.CONDO_KEY;
this.condoKey.quantity = 1;

if(!this.addOnsContainCondoKey()) {
this.additionalItems.push(_this.condoKey);
}
} else {
this.condoKey.quantity = 0;
}
}
}

“CondoKeyController”嵌套在父级中,该父级通过指令将数组“additionalItems”传递给该 Controller 。我可以在其他函数中以及构建 Controller 时看到这些其他变量,以便它们可以很好地放入该 Controller 中。

我的问题是,在函数“onKeyCheckBoxChange”中,我可以访问“this.hasCondoKey”,但无法访问任何其他值,例如“this.condoKey”或“this.additionalItems”。

我认为这与我的函数的范围和上下文有关,因为它来自复选框事件,但后来我推断我不应该访问“this.hasCondoKey”值。从我的断点来看,该值读取为“true”,因此它已从其初始化值更改。

有谁知道为什么我可以访问某些变量而不是其他变量?另外我如何访问其他变量?

Angularjs 1.6.6 typescript ~2.3.1

最佳答案

向方法添加一些调试帮助日志:

public onKeyCheckboxChange(): void {
console.log("Checkbox changed.");
console.log(this.condoKey);
console.log(this.additionalItems);
// ...
}

检查结果。 condoKeyadditionalItems 可能未定义,这意味着它们从未设置。

关于javascript - 只能从复选框事件访问一个类变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47116233/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com