私はノックアウトjsにやや困惑しています。私はほとんどのチュートリアルを完了し、その使用方法についての一般的な理解を持っています. UI は問題なく操作できますが、理解できないのは、KO が KO 外の他の JavaScript 関数と通信する方法です。
私の目標はかなりシンプルで簡単だと思います。ユーザーが一連のラジオ ボタンから選択したラジオ ボタンの値が必要です。これが私が持っているものです。
HTML
<input type="radio" name="templateStyle" value="DR.php" data-bind="checked: tempStyle">
<input type="radio" name="templateStyle" value="DRH.php" data-bind="checked: tempStyle">
<input type="radio" name="templateStyle" value="PS.php" data-bind="checked: tempStyle">
<p>The template style selected is <span data-bind="text: selectedStyle"></span></p>
<button id="submitTemplate">Submit Template</button>
JS
var radioValue = { rv: "" };
function viewModel() {
var self = this;
self.tempStyle = ko.observable("DR.php");
self.selectedStyle = ko.computed(function() {
return self.tempStyle();
},
self
);
return self.selectedStyle();
}
ko.applyBindings(new viewModel());
$("#submitTemplate").click(function() {
radioValue.rv = viewModel();
console.log(radioValue.rv);
});
これは UI 側では正常に機能しますが、radioValue.rv
オブジェクトは「DR.php」のままです。これを更新して値を反映するにはどうすればよいdata-bind="text: selectedStyle"
ですか?
のバリエーションを試しましradioValue.rv = ko.toJS(viewModel())
たが、これはうまくいきませんでした。
これが完全に間違っている場合、templateStyle ラジオ ボタンの値を取得するにはどうすればよいですか? だから私は私のjavascriptの他の側面でそれを使うことができますか?