Javascript 将Knockout JS-Observable添加到数组中时将变得未定义

Javascript 将Knockout JS-Observable添加到数组中时将变得未定义,javascript,knockout.js,Javascript,Knockout.js,我有一个名为purchase的对象,根据其状态将其放入两个可观察数组之一。purchase对象有一个名为integrationStatus的可观察对象,我默认为integrationStatus--completecss类名 由于某些原因,计划阵列中的购买按预期编码为绿色,但非计划阵列中的购买会引发错误,因为integrationStatus未定义 提前谢谢 该问题与计划中的映射配置有关。映射调用ko.mapping.fromJS(数据,{scheduleDays:scheduleDayMapp

我有一个名为
purchase
的对象,根据其状态将其放入两个可观察数组之一。
purchase
对象有一个名为
integrationStatus
的可观察对象,我默认为
integrationStatus--complete
css类名

由于某些原因,计划阵列中的购买按预期编码为绿色,但非计划阵列中的购买会引发错误,因为
integrationStatus
未定义

提前谢谢


该问题与
计划中的映射配置有关。映射调用
ko.mapping.fromJS(数据,{scheduleDays:scheduleDayMapping},self)
指示实用程序仅从
数据
变量自定义
scheduleDays
对象的映射

由于该配置不包括
unallocatedHolder
的条目,因此映射实用程序使用默认的可观察创建行为,而不是自定义行为。从未调用
UnallocatedHolder
函数,因此其
purchases
数组不会获得自定义映射。如果没有该映射,则不会为这些购买定义
integrationStatus

我建议为
Schedule
定义一个新的映射配置,如下所示:

var scheduleMapping = {
  "scheduleDays": scheduleDayMapping,
  "unallocatedHolder": {
    create: function(options) {
      return new UnallocatedHolder(options.data);
    }
  }
};
然后,通过将映射行更新为,在
计划中引用此新映射配置

ko.mapping.fromJS(data, scheduleMapping, self);

您正在绑定要查看的
viewModel
对象,因此它不应该是
SomeVariableNameAtholdspurchaceObject.integrationStatus
?您好,欢迎使用堆栈溢出。请创建一个,以便其他用户可以复制您的问题
Array1
table2
,foo,bar相当混乱,这将导致我们对您的代码做出假设,正如@Rajesh在上述评论中所做的那样。如何使用
foreach
绑定?如何从一个阵列“移动”到另一个阵列?如果你能创建一个最小的或可工作的代码片段,这将非常容易帮助你。谢谢@adiga的反馈。这是我的第一篇帖子,所以我很感谢你的评论。按照建议增加了一把小提琴。德文郡真棒,这很有道理。谢谢你的帮助!