【发布时间】:2017-05-10 03:26:40
【问题描述】:
我正在尝试检查一个对象是否与可观察数组中具有相同可观察属性的其他对象具有相同的可观察值。
我创建了一个 foreach 循环,它评估是否有任何可观察对象匹配。我遇到的问题是条件总是评估为真,即使这些值不同。我正在使用打字稿和淘汰赛。
代码如下:
export function addPDFToPackage(heat: MTRHeat): void {
var koHeat: MTRHeatWithInclude = ko.mapping.fromJS(heat);
koHeat.Include = ko.observable(true);
var arrayOfHeats = model.mtrPackage.Heats();
var addToHeats = () => model.mtrPackage.Heats.push(koHeat);
var duplicate = false;
arrayOfHeats.forEach(function (koHeat, i) {
if (arrayOfHeats[i].MTRID() == koHeat.MTRID() && arrayOfHeats[i].HeatID() == koHeat.HeatID() && arrayOfHeats[i].PartID() == koHeat.PartID()) {
duplicate = true;
}
else
duplicate = false;
})
if (!!model.mtrPackage.PackageID()) {
if (duplicate) {
var c = confirm("Warning: Duplicate MTR located on current package.Proceed ?")
if (c) {
ServiceMethods.addHeatToPackage(model.mtrPackage.PackageID(), heat.HeatID).done(addToHeats);
}
if (!c) {
return;
}
}
}
}
【问题讨论】:
-
您已将 koHeat 推到数组的末尾,我认为这就是返回 true(不是所有元素)。
标签: javascript typescript knockout.js