我有一个名为 purchase
的对象,它根据其状态被放入两个可观察数组之一。 purchase
对象有一个名为 integrationStatus
的可观察对象,我将其默认为 integration-status--complete
由于某种原因,Scheduled 数组中的购买按预期编码为绿色,但 Unscheduled 数组中的购买会引发错误,因为 integrationStatus
未定义
提前致谢
最佳答案
此问题与 Schedule
中的映射配置有关。映射调用 ko.mapping.fromJS(data, { scheduleDays : scheduleDayMapping }, self)
指示实用程序仅自定义来自 的
变量。 scheduleDays
对象的映射数据
由于该配置不包含 unallocatedHolder
的条目,映射实用程序使用默认的可观察创建行为而不是自定义行为。 UnallocatedHolder
函数从未被调用,因此它的 purchases
数组没有获得自定义映射。如果没有该映射,则不会为这些购买定义 integrationStatus
。
我建议像这样为 Schedule
定义一个新的映射配置:
var scheduleMapping = {
"scheduleDays": scheduleDayMapping,
"unallocatedHolder": {
create: function(options) {
return new UnallocatedHolder(options.data);
}
}
};
然后,通过将映射行更新为
,在Schedule
中引用这个新的映射配置
ko.mapping.fromJS(data, scheduleMapping, self);
关于javascript - Knockout JS - Observable 在添加到数组时变为未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46903549/