Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
KnockoutJs:将数据绑定值传递给javascript变量/对象_Javascript_Knockout.js - Fatal编程技术网

KnockoutJs:将数据绑定值传递给javascript变量/对象

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())的各

我对淘汰赛有些困惑。我已经阅读了大部分教程,对如何使用它有了大致的了解。我可以很好地操作UI,但我不理解的是KO如何与KO之外的其他javascript函数通信

我认为我的目标相当简单明了。我需要用户从单选按钮族中选择的单选按钮的值。这是我的

HTML

这在UI端可以正常工作,但是
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());