の値に基づいて変更するCSSクラスIは、観察可能なアレイ上のforeachを使用します。ノックアウト:観測可能
<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