javascript - 模型属性未定义

标签 javascript knockout.js

我正在制作一个简单的 knockout 应用程序,但收到错误“错误:无法解析绑定(bind)。消息:ReferenceError:gpaBasedScolarship 未定义;绑定(bind)值:可见:gpaBasedScolarship”

我的代码是:

$(document).ready(function () {
    $.get("/api/Values", function (data) {
        console.log(data);
            function studentModel(name, number, age, gpa) {
                var self = this;
                self.studentName = name;
                self.studentNumber = number;
                self.age = age;
                self.gpa = ko.observable(gpa);
                self.gpaBasedScolarship = ko.computed(function () {
                    if (gpa > 3)
                        return true;
                    else
                        return false;   
                });
            }
            function studentViewModel() {
                var self = this;
                //editable data
                self.students = ko.observableArray(data);
            }
            ko.applyBindings(new studentViewModel());
    });
});

什么给出了?

PS:我的html是...

<div id="body">
    <div data-bind="foreach:students">
        <h1>Student</h1>
    <div><input type="text" data-bind="value:studentName"/></div>
    <div><input type="text" data-bind="value:studentNumber"/></div>
    <div><input type="text" data-bind="value:age"/></div>
    <div>
        <p><input type="text" data-bind="value:gpa"/></p>
        <p data-bind="visible: gpaBasedScolarship"><input type="text" data-bind=""/></p>
    </div>
        </div>
</div>

最佳答案

您还没有告诉 knockout 将您的数据映射到studentModel

var mappedData = ko.utils.arrayMap(data, function(item) {
    return new studentModel(...);
});
self.students = ko.obserbableArray(mappedData);

关于javascript - 模型属性未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23981675/

相关文章:

javascript - 甜蜜警报不适用于取消按钮

javascript - 如何在 Angular Material 和 Angular js中仅显示输入字段的最后四位数字?

javascript - 根据 Angularjs 中选定的值显示值

javascript - knockout 无法观察到样式属性

html - 我想一次只显示列表中的 2 个名字,然后单击下一个按钮,出现 2 个名字,但有一个错误

javascript - 在 HTML5 Canvas 中绘制对象的高效方法

javascript - 动态 jQuery 效果

javascript - 如何在不使用 foreach 的情况下访问动态更新的 knockout observableArray 的特定元素

html - CSS 属性定义覆盖 Knockout js css 绑定(bind)

javascript - 将 Javascript onkeypress 转换为 knockoutjs 以在输入时调用