Javascript 剔除不更新表

Javascript 剔除不更新表,javascript,knockout.js,Javascript,Knockout.js,我想从表单字段中获取值,并将它们作为对象保存到observableArray中。并在表格中显示它们。因此,每次我点击“添加”按钮,表格都应该更新,但它不工作 <select data-bind="options: gradeList, optionsText: 'Name', value: selectedGrade"></select> <input type="text" data-bind="value: komark" /> <button da

我想从表单字段中获取值,并将它们作为对象保存到observableArray中。并在表格中显示它们。因此,每次我点击“添加”按钮,表格都应该更新,但它不工作

<select data-bind="options: gradeList, optionsText: 'Name', value: selectedGrade"></select>
<input type="text" data-bind="value: komark" />
<button data-bind="click: addMark">Add</button>
<table>
    <thead>
        <tr>
            <th>SN</th>
            <th>Name</th>
            <th>Mark</th>
        </tr>
    </thead>
    <tbody data-bind="foreach: allMarks">
        <tr>
            <td data-bind="$data.id"></td>
            <td data-bind="$data.name"></td>
            <td data-bind="$data.mark"></td>
        </tr>
    </tbody>
</table>
<p data-bind="text: allMarks"></p>
这是我的javasript。“mark”和“allMarks”的值在控制台中得到更新,但表从未得到更新。

没有任何作用,您还没有指定绑定。你可能想要:

var newModel = function () {
    var self = this;
    self.komark = ko.observable();
    self.mark = ko.observable();
    self.selectedGrade = ko.observable();
    self.gradeList = ko.observableArray([]);
    self.allMarks = ko.observableArray([]);
    self.loadAllGrades = function () {
        $.ajax({
            type: "GET",
            dataType: "text",
            url: "studenthandler.ashx",
            data: { "action": "getAllGrades", "id": 0 },
            success: function (res) {
                self.gradeList(JSON.parse(res));
            },
            error: function () {
                alert("Failed to load.\nHit Refresh.");
            }
        });
    };

    self.addMark = function () {
        // console.log("button clicked");
        self.mark({ "id": self.selectedGrade().Id, "name": self.selectedGrade().Name, "mark": self.komark() });
        console.log(self.mark());
        self.allMarks.push(self.mark());
        console.log(self.allMarks());
    };
    self.loadAllGrades();
}
<td data-bind="text: $data.id"></td>
<!-- ----------^^^^^^            -->

添加
锡
名称
做记号