Knockout.js 在敲除中更新数组子值的最佳方法

Knockout.js 在敲除中更新数组子值的最佳方法,knockout.js,Knockout.js,我有一个淘汰赛的耳环,上面有一个IsRecent(bool)项目。IsRecent表示更新的记录是否在一分钟前完成。当IsRecent为true时,我使用knockout的attr和css突出显示该行。当我从数据库加载淘汰ObservalArray时,我通过MVC ViewModel计算它。工作起来很有魅力 现在,我不再一直加载整个表,而是使用ko.util.push/ko.util.replace只更新更改的记录/整行。那太好了 当我推送/替换一条记录时,我希望遍历整个表并更新一个微不足道的字

我有一个淘汰赛的耳环,上面有一个IsRecent(bool)项目。IsRecent表示更新的记录是否在一分钟前完成。当IsRecent为true时,我使用knockout的attr和css突出显示该行。当我从数据库加载淘汰ObservalArray时,我通过MVC ViewModel计算它。工作起来很有魅力

现在,我不再一直加载整个表,而是使用ko.util.push/ko.util.replace只更新更改的记录/整行。那太好了

当我推送/替换一条记录时,我希望遍历整个表并更新一个微不足道的字段——IsRecent。问题是。。。怎么做

我下面所做的似乎不起作用:

    function setIsRecentHighlight() {
       var now = new Date();
       ko.utils.arrayForEach(taskViewModel.tasks(), function(task) {
           var stamp = new Date(task.LastActivityStampUtc);
           var ms = Math.abs(stamp - now);
           if (ms > 60000 && task.IsRecent) {
              var index = taskViewModel.tasks.indexOf(task);
              task.IsRecent = false;
              taskViewModel.tasks.replace(taskViewModel.tasks()[index], task);
          }
       });
    }
viewModel:

var taskViewModel = {
    tasks: ko.observableArray()
}
任务包括:

{"tasks":[
{"$id":"1","Name":"Report1","LastActivityStampUtc":"2013-01-14T12:52:14.420Z","IsRecent":true",
{"$id":"2","Name":"Report2","LastActivityStampUtc":"2013-01-14T12:47:32.700Z","IsRecent":false"}]
}

应该是
task.IsRecent(false)如果
IsRecent
是可观察的属性。如果不可观察,就让它可观察,它应该起作用。我该如何让它可观察?不知怎么画出来的?否则,我必须将这个viewModel变成一个函数?