我是淘汰赛的新手,我找到了一个复选框绑定的例子,这在我的网站上非常有用。 链接到示例:http://knockoutjs.com/documentation/checked-binding.html
我试图将它应用到我的页面但它没有用,然后我试图复制这个例子而不改变任何东西,但它仍然没有用。我在不同的浏览器(Chrome,Firefox,IE)上尝试过它,包括不同版本的淘汰库,但它仍然没有用。 我不知道我做错了什么,请帮忙!
以下是此示例的代码:
<!DOCTYPE html>
<head>
<script type='text/javascript' src='http://ajax.aspnetcdn.com/ajax/knockout/knockout-2.1.0.js'></script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Dokument bez tytułu</title>
</head>
<body>
<p>Send me spam: <input type="checkbox" data-bind="checked: wantsSpam" /></p>
<div data-bind="visible: wantsSpam">
Preferred flavors of spam:
<div><input type="checkbox" value="cherry" data-bind="checked: spamFlavors" /> Cherry</div>
<div><input type="checkbox" value="almond" data-bind="checked: spamFlavors" /> Almond</div>
<div><input type="checkbox" value="msg" data-bind="checked: spamFlavors" /> Monosodium Glutamate</div>
</div>
<script type="text/javascript">
var viewModel = {
wantsSpam: ko.observable(true),
spamFlavors: ko.observableArray(["cherry","almond"]) // Initially checks the Cherry and Almond checkboxes
};
// ... then later ...
viewModel.spamFlavors.push("msg"); // Now additionally checks the Monosodium Glutamate checkbox
</script>
</body>
</html>
答案 0 :(得分:1)
您所看到的是一个片段,而不是一个完整的例子。你需要做几件事。
您需要applyBindings
:
ko.applyBindings(viewModel);
你需要在DOM加载后执行此操作(或者淘汰赛会非常沮丧)。
这是example
我稍微更新了我的示例,以便更容易看到复选框实际上是绑定的。复选框列表下面有一个spamFlavor列表,当您选中并取消选中复选框时,这些列表会发生变化。