knockout.js中未定义的值

knockout.js中未定义的值,knockout.js,Knockout.js,我已经定义了一个函数,比如self.loadInfected=function(){ko.observable(true);} 并尝试在另一个函数上打印,如 self.loadAffectedChanged = function() { // clear "Road Blocked" when Load Affected is selected **alert(self.loadAffected());** if (self.loadAffected === false)

我已经定义了一个函数,比如
self.loadInfected=function(){ko.observable(true);}

并尝试在另一个函数上打印,如

self.loadAffectedChanged = function() {
    // clear "Road Blocked" when Load Affected is selected
    **alert(self.loadAffected());**
    if (self.loadAffected === false)
        self.groupable(false);
    else
    // clear "Groupable" when Load Affected is cleared

        self.roadBlocked(false);
};
通过类似HTML的方式调用上述函数

<input type="checkbox" data-bind="jqmChecked: loadAffected, click: loadAffectedChanged" 
                   name="load_affected" id="load_affected"/>

当我点击复选框时,它会弹出未定义的弹出框,

有人能帮忙解决这个问题吗?

self.loadInfected()
将始终为您提供
未定义的
,因为它只是一个不返回任何内容的函数。我不确定jqmChecked的功能是什么,但我不知道它与问题有关

您应该将代码更改为:

self.loadAffected = ko.observable(true); // now loadAffected is an observable

self.loadAffectedChanged = function() {
    // you need to add the parentheses here to read the value of loadAffected observable
    if (self.loadAffected() === false)
        self.groupable(false);
    else
    // clear "Groupable" when Load Affected is cleared

     self.roadBlocked(false);
};

谢谢你的回复,但是上面的更改总是只检查其他部分。即使我们尝试使用if(self.loadInfected()==true),它也会转到其他部分。你能提供其他建议吗?我认为这与这个问题无关。您的自定义绑定一定有问题
jqmChecked