管理数组时的knockout依赖对象属性

时间:2014-06-02 20:29:46

标签: knockout.js knockout-2.0

我有一个视图模型,它基本上是一个对象数组。该对象具有StartDate和EndDate属性。我试图实现一个功能,其中数组中前一项的EndDate应该是当前项的StartDate的T - 1。例如:

如果数组类似于:

   Type      Start Date       End Date
   ObjectA   5/1/2014         5/31/2014
   ObjectB   6/1/2014

现在,当用户将ObjectB的StartDate更改为6/15/2014时,ObjectA的EndDate应自动更改为2014年6月14日。

如何通过淘汰赛实现这一目标?请帮忙。

1 个答案:

答案 0 :(得分:0)

ObjectB的开始日期应该是可观察的。然后订阅observable属性,当它发生变化时,改变ObjectA的属性。

function addDays(date, value) {
            return new Date(date.getFullYear(), date.getMonth(), date.getDate() + value, date.getHours(), date.getMinutes(), date.getMilliseconds());
        }

ObjectB.StartDate.subscribe(function (newDate){
  ObjectB.EndDate(addDays(newDate, -1));
});