我试图解决的问题是:通过在jquery onclick事件之后解析json对象数组来填充radiolist。当有一个选中的选项时,我绑定了一个knockout属性,但是只将当前所选选项的名称放在observable中。我希望用shipOption
填充名称(现在可以使用),但也想要shipCost
中的费用值。 formatcurrency只是一个帮助函数,用于显示用户友好。
我的淘汰赛和js代码:
$(document).ready(function () {
var shipOptions = [];
function ovm() {
var self = this;
self.shippingOptions = ko.observableArray(shipOptions);
self.shipOption = ko.observable();
self.shipCost = ko.observable();
}
window.vm = new ovm();
ko.applyBindings(vm);
我的HTML:
<table style="width: 60%;" data-bind="foreach: shippingOptions">
<tr>
<td><label><input name="shipmentoptions" type="radio" data-bind="value: Name, checked: $parent.shipOption" /><span data-bind="text: Name"></span></label></td>
<td>€ <span data-bind="text: formatCurrency(Costs())"></span></td>
<td><img data-bind="attr: { src: Picture }"/></td>
</tr>
</table>
P.S。我使用knockout 2.3并使用映射插件来填充shipoptions数组中的json对象