我使用的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