我使用的foreach可观察到的阵列上的值变更css类:敲除:基于可观察
<div id="mainRight" data-bind="foreach: notifications">
<div class="statusRow">
<div class="leftStatusCell">
<div class="leftStatusCellColor" data-bind="css: availabilityCssClass($data.availability)"></div>
</div>
<div class="topRightStatusCell" data-bind="text: sip"></div>
<div class="bottomtRightStatusCell ellipsisSingleline" data-bind="text: note"></div>
</div>
</div> <!== end mainRight ==>
正如你可以看到,我的可用性的电流值传递给函数availabilityCssClass,其值进行比较,以一些预定义的字符根据匹配的字符串,它返回一个类名。
self.availabilityCssClass = ko.computed(function (value) {
var availability = value;
if (availability === "Busy" || "DoNotDisturb" || "BeRightBack")
return "leftStatusCellColorOrange";
else if (availability === "Away" || "Offline")
return "leftStatusCellColorRed";
else
return "leftStatusCellColorGreen";
});
这是我的模型。数据来自外部数据源。
function Notification(root, sip, availability, note) {
var self = this;
self.sip = ko.observable(sip);
self.availability = ko.observable(availability);
self.note = ko.observable(note);
};
self.notifications = ko.observableArray();
但是,它不起作用。当计算的函数未被注释掉时,foreach不会迭代数据,而div是空的。但是我可以看到viewModel不是空的。
你能提供一个小提琴,并描述什么是行不通的。 –
您正在使用哪个KO版本? – nemesv
即时通讯使用2.2所以这个功能应该被支持,对吧? – mupersan82