我在从html访问数据时遇到问题。
工作原理:用户将选择一个单选按钮,KnockoutJS observables中的代码将更新" data-bind =" text:radioFrom"使用所选单选按钮的值。我想打印出存储在变量中的字符串" data-bind =" text:radioFrom"到控制台。
我已经尝试过这样做了,但我不断收到错误,或者更常见的是,它只是将变量输出为" undefined"。如何将其打印到控制台(或警报)?
我的尝试
---------------------------------------------------
var jsonRadioFrom = JSON.stringify(self.radioFrom);
console.log(jsonRadioFrom);
---------------------------------------------------
console.log(self.radioFrom)
---------------------------------------------------
console.log(self.radioFrom.name)
---------------------------------------------------
这些是单选按钮
<td class="label">From:</td>
<td>
<label><input type="radio" value="Dev1" data-bind="checked: radioFrom" />Dev [devName1]</label>
<label><input type="radio" value="Dev2" data-bind="checked: radioFrom" />Dev2 [devName2]</label>
</td>
保存所选单选按钮的值
<tr>
<td class="label">From:</td>
<td data-bind="text: radioFrom"></td>
</tr>
这是我的Javascript / KnockoutJS
的一部分<script>
var TabViewModel = function(){
var self = this;
self.radioFrom = ko.observable("Dev1");
};
ko.applyBindings(new TabViewModel());
</script>
答案 0 :(得分:2)
ko.dataFor()
获取与给定HTML元素绑定的KO视图模型。
ko.dataFor($("body")[0]).radioFrom()
另一个选择是将TabViewModel的实例分配给全局变量,因此可以从具有自动完成功能的控制台访问它
<script>
var TabViewModel = function(){
var self = this;
self.radioFrom = ko.observable("Dev1");
};
window.viewModel = new TabViewModel();
ko.applyBindings(window.viewModel);
</script>
现在以下工作:
viewModel.radioFrom()