1

私はノックアウトを初めて使用します。私の Web サイトで非常に役立つチェックボックス バインディングの例を見つけました。例へのリンク: 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>
4

1 に答える 1

1

あなたが見ているのは断片であり、完全に機能する例ではありません。いくつかのことを行う必要があります。

あなたがする必要がありますapplyBindings

ko.applyBindings(viewModel);

そして、DOM がロードされた後にそれを行う必要があります (そうしないと、ノックアウトが非常に動揺します)。

これが例です

チェックボックスが実際にバインドされていることを簡単に確認できるように、例を少し更新しました。チェックボックスをオンまたはオフにすると変化するチェックボックスのリストの下に、spamFlavors のリストがあります。

于 2012-11-27T20:52:43.357 に答える