我對knockoutjs有些困惑。我已閱讀了大部分教程,並對如何使用它有了一個大致的瞭解。我可以很好地操作UI,但是我不明白的是KO如何與KO之外的其他JavaScript函數進行通信。KnockoutJs:將數據綁定值傳遞給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的其他方面使用它?
感謝您的迴應,但刪除了parens並返回'self.tempStyle'會導致錯誤'錯誤:無法解析綁定'。 – bmorenate 2012-07-06 15:49:19