【发布时间】:2013-03-12 07:44:14
【问题描述】:
我正在使用 knockout.js。
这是我的场景:
我有一个输入字段和三个复选框。每个复选框都有一个关联的值。例如,checkbox1(500)、checkbox2(200)、checkbox3(100)。当用户单击复选框时,我希望该复选框的值出现在输入字段中。如果用户单击两个复选框,我希望两个复选框的值的总和出现在输入字段上。当所有三个复选框都被选中时,同样适用。
我对这个问题的看法
我认为我需要一个计算函数,该函数将根据选中的复选框计算值。然后,我可以将计算函数绑定到我的输入字段。
在我的视图模型中,我有这个计算函数:
var classes = ko.computed(function() {
var total = 0;
if(primaryClass.checked)
total+= parseInt(primSalary());
if(secondaryClass.checked)
total+= parseInt(secSalary());
if(otherClass.checked)
total+= parseInt(otherSalary());
return total;
});
在我看来,我像这样绑定我的价值观:
<input type="text" class="input-medium" placeholder="0" data-bind="text: classes"/>
但是,当我这样做时,控制台会抛出以下消息:
“无法解析绑定。↵消息:ReferenceError:未定义类;↵绑定值:值:类”
感谢您的帮助。
【问题讨论】:
-
你能把剩下的视图模型代码放上去吗?我猜想 classes 属性不是公开可见的。另外,你计算的primaryClass、secondaryClass和otherClass是什么?
-
@PaulManzotti,这些是我的视图模型中的可观察对象,并与我的复选框相关联,如下所示:500
标签: html knockout.js