我有月份链接
<ul data-bind="foreach: factMonthes">
<li data-bind="click: $root.changeFactMonth, css:{'selected-month': num == $root.activeFactMonth()}">
</ul>
我想为所有链接禁用“选定月份”类,但“活动”除外,并在单击后启用激活。当然,我可以在我的方法changeFactMonth()中禁用类,但我可以使用knockout绑定吗?
function FactMonth(num){
this.num = num;
this.name = MonthesNames[num - 1];
this.active = false;
}
function ViewModel() {
self.factMonthes = ko.observableArray();
self.activeFactMonth = ko.observable(new Date().getMonth() + 1);
for(var i = 1; i <= 12; i++)
{
var month = new FactMonth(i);
month.active = self.activeFactMonth() == i;
self.factMonthes.push(month);
}
}
答案 0 :(得分:3)
如果month_num
是一个可观察的,那么你需要打开它:
<li data-bind="
click: $root.changeFactMonth,
css:{'selected-month': month_num() == $root.activeFactMonth()}
">
只有在不将它们用作表达式的一部分时,才能直接使用observable。由于比较(==
)是表达式,因此必须使用基础值,即必须调用observable。