0

我在击倒刷新时遇到了困难。

这是我的视图模型;

$(document).ready(function () {
    ko.applyBindings(new Task(), document.getElementById('taskSummary'));
    setInterval(Task, 2000);
});

function task(name, description, project) {
    var self = this;

    self.name= ko.observable(name);
    self.description = ko.observable(description);
    self.project = ko.observable(project);

}


function Task() {
    var self = this;
    self.tasks = ko.observableArray([]);
    self.tasks.removeAll;
    $.getJSON("/api/tasks/5", function (data) {
        $.each(data, function (key, val) {

            self.tasks.push(new task(val.Name, val.Description, val.Project));

        });
    });

}

当我更改后端数据库中的数据时,它将数据返回到视图但不会更新。

任何帮助表示赞赏。我确定它是我缺少的一些小东西。

4

1 回答 1

3

对于淘汰赛,如果您将模型应用于新的 Task 实例,保存该实例,然后设置一个 setInterval 循环来修改 Task 的“tasks”observableArray 值,可能会更好。

$(document).ready(function () {
var oTask = new Task();

ko.applyBindings(oTask, document.getElementById('taskSummary'));

function onLoop() {
    var self = oTask;

    $.getJSON("/api/tasks/5", function (data) {
        self.tasks.removeAll(); // not sure if you need this...
        $.each(data, function (key, val) {
            self.tasks.push(new task(val.Name, val.Description, val.Project));
        });
    });        
}

setInterval(onLoop, 2000);
});
于 2013-05-31T21:22:03.900 回答