我有一个名为purchase
的对象,它根据其状态被放入两个可观察数组之一中。purchase
对象有一个名为integrationStatus
的可观察量,我默认为 css 类名 integration-status--complete
预期编码为绿色,但计划外数组中的购买会引发错误,因为integrationStatus
未定义
提前致谢
JS小提琴
该问题与 Schedule
中的映射配置有关。映射调用ko.mapping.fromJS(data, { scheduleDays : scheduleDayMapping }, self)
指示实用程序仅从data
变量自定义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);
修订版小提琴