Javascript 如何使用文本绑定在kncokout.js中显示选中值?

Javascript 如何使用文本绑定在kncokout.js中显示选中值?,javascript,knockout.js,Javascript,Knockout.js,我在JFiddle上做了一个简单的例子。我做了三个复选框,然后使用data bind=“checked:”将它们与knockout.js绑定,我想用span显示它们的值,但我只能看到第一个复选框的值 例如: 似乎在没有绑定的情况下运行文本会正常运行,所以可能是knockout.js有问题,我尝试过使用“p”,结果是一样的 var MainViewModel={ 第三个绑定:ko.observable(), 第二个绑定:ko.observable(), firstBinding:ko.obser

我在JFiddle上做了一个简单的例子。我做了三个复选框,然后使用
data bind=“checked:”
将它们与knockout.js绑定,我想用
span
显示它们的值,但我只能看到第一个复选框的值

例如:

似乎在没有绑定的情况下运行文本会正常运行,所以可能是knockout.js有问题,我尝试过使用“p”,结果是一样的

var MainViewModel={
第三个绑定:ko.observable(),
第二个绑定:ko.observable(),
firstBinding:ko.observable()
}
ko.应用绑定(MainViewModel)

页面加载
firstBinding()
未定义。因此,当您尝试读取
firstBinding().toString()
时,会出现一个错误

无法读取未定义的属性“toString”

按F12并检查控制台。您将看到此错误

要避免这种情况,您可以

1)将默认值
false
设置为加载时可观察的
值。这样
firstBinding().toString()
在加载时不会失败。默认情况下,跨距将显示
false
()

或者

2)您可以像这样将
firstBinding
绑定到
span
。让knockout对可观察对象进行展开,检查其是否为
null
未定义
():

这里有一个工作片段。(单击RunCodeSnippet进行测试)

var MainViewModel={
第三个绑定:ko.observable(),
第二个绑定:ko.observable(),
firstBinding:ko.observable()
}
ko.应用绑定(MainViewModel)

var MainViewModel = {
  thirdBinding: ko.observable(false),
  secondBinding: ko.observable(false),
  firstBinding: ko.observable(false)
}