如何在运行时向计算的observable添加其他数组项

时间:2013-11-05 16:48:40

标签: javascript arrays knockout.js computed-observable

我试图在没有运气的情况下为一个淘汰赛计算观察点附加一个额外的值。希望有人可以指出我正确的方向。 目前,我正在迭代一组字段并构建一个日期数组

//extract Primary dates from entities
report.PrimaryDateRangeAttributes = ko.computed(function () {
      return $.grep(entity.PrimaryAttributes(), function (item) { return item.DataType() === 'datetime' });
 });

一旦我构建了数组,我想添加一个额外的项目

report.PrimaryDateRangeAttributes.push('DateEntered');

然而,计算的observable不支持push。任何人都可以提供一些关于如何在对象初始化期间插入附加值的建议吗?

提前致谢,

1 个答案:

答案 0 :(得分:0)

由于计算函数被调用以在需要值时构建值(毕竟这是computed的目的),你只需在函数中添加它:

//extract Primary dates from entities
report.PrimaryDateRangeAttributes = ko.computed(function () {
      var rv = $.grep(entity.PrimaryAttributes(), function (item) { return item.DataType() === 'datetime' });
      rv.push('DateEntered');
      return rv;
});