淘汰js民意调查不起作用

时间:2013-05-31 21:14:55

标签: json model-view-controller knockout.js

我在淘汰赛时遇到困难。

这是我的viewModel;

$(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));

        });
    });

}

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

任何帮助表示赞赏。我确定它的东西很小,我不知道。

1 个答案:

答案 0 :(得分:3)

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

$(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);
});