KnockoutJs:将数据绑定值传递给javascript变量/对象
我对淘汰赛有些困惑。我已经阅读了大部分教程,对如何使用它有了大致的了解。我可以很好地操作UI,但我不理解的是KO如何与KO之外的其他javascript函数通信 我认为我的目标相当简单明了。我需要用户从单选按钮族中选择的单选按钮的值。这是我的 HTML 这在UI端可以正常工作,但是KnockoutJs:将数据绑定值传递给javascript变量/对象,javascript,knockout.js,Javascript,Knockout.js,我对淘汰赛有些困惑。我已经阅读了大部分教程,对如何使用它有了大致的了解。我可以很好地操作UI,但我不理解的是KO如何与KO之外的其他javascript函数通信 我认为我的目标相当简单明了。我需要用户从单选按钮族中选择的单选按钮的值。这是我的 HTML 这在UI端可以正常工作,但是radioValue.rv对象仍保留在“DR.php”中。如何更新它以反映data bind=“text:selectedStyle”值 我尝试了radioValue.rv=ko.toJS(viewModel())的各
radioValue.rv
对象仍保留在“DR.php”中。如何更新它以反映data bind=“text:selectedStyle”
值
我尝试了radioValue.rv=ko.toJS(viewModel())
的各种变体,但都不起作用
如果这是完全错误的,如何获取templateStyle单选按钮的值?所以我可以在javascript的其他方面使用它?我的淘汰有点模糊,但我希望这会有所帮助。你什么时候会这样做:
return self.tempStyle();
它正在调用tempStyle。tempStyle是ko.observable(“DR.php”)
,因此实际返回的是ko.observable(“DR.php”)()
,也就是说,它得到的是可观察的值,而不是可观察的本身
尝试删除paren:
return self.tempStyle;
这样,radioValue.rv将被分配给可观察对象本身,而不是可观察对象的值。我的淘汰有点模糊,但我希望这会有所帮助。你什么时候会这样做:
return self.tempStyle();
它正在调用tempStyle。tempStyle是ko.observable(“DR.php”)
,因此实际返回的是ko.observable(“DR.php”)()
,也就是说,它得到的是可观察的值,而不是可观察的本身
尝试删除paren:
return self.tempStyle;
这样,radioValue.rv将被分配给可观察对象本身,而不是可观察对象的值。我不编辑我的原始问题,因为它显示了我的错误。 我真不敢相信我花了两天的时间和这么多的问题才弄明白这一点,但它就在这里 HTML 基本上,我试着在
viewModel
之外工作,以便尽早开始
我现在明白了为什么淘汰赛这么好了。我没有修改我原来的问题,因为它显示了我的错误。 我真不敢相信我花了两天的时间和这么多的问题才弄明白这一点,但它就在这里 HTML 基本上,我试着在
viewModel
之外工作,以便尽早开始
我现在明白了为什么敲除这么好。感谢您的回复,但是删除paren并返回
self.tempStyle
会导致错误错误:无法解析绑定。
。感谢您的回复,但是删除paren并返回self.tempStyle
会导致错误错误:无法解析绑定。
<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" data-bind="click: submitTemplate">Submit Template</button>
var radioValue = { rv: "" };
function viewModel() {
var self = this;
self.tempStyle = ko.observable("DR.php"); // Set default selected radio button
self.selectedStyle = ko.computed(function() {
return self.tempStyle(); // Update viewModel to reflect user input
},
self
);
self.submitTemplate = function() {
radioValue.rv = self.tempStyle(); // Return user input on button click
console.log(radioValue.rv); // JS object can now be used anywhere
};
}
ko.applyBindings(new viewModel());