我对knockoutjs有些困惑。我已经阅读了大部分教程,并且对如何使用它有一个大致的了解。我可以很好地操作 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的其他方面使用它吗?