0

ノックアウトのリフレッシュに苦労しています。

これが私の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));

        });
    });

}

ビューにデータを返しますが、バックエンド データベースのデータを変更しても更新されません。

助けていただければ幸いです。私が見逃している小さなものだと確信しています。

4

1 に答える 1

3

ノックアウトの場合は、モデルを新しい Task インスタンスに適用し、そのインスタンスを保存してから、Task の「タスク」の 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);
});
于 2013-05-31T21:22:03.900 に答える