あなたがそれをしている方法はうまくいくでしょう。よりクリーンな方法が必要な場合は、適切な値を返す計算されたオブザーバブルをビューモデルに作成するか、このロジックを処理するカスタムバインディングを作成することができます。
インデックスとして使用したいものを渡すことができるカスタムバインディングのサンプルは、次のようになります。
ko.bindingHandlers.float = {
init: function(element, valueAccessor, allBindings, data, context) {
var index, floatValue;
index = valueAccessor();
floatValue = ko.computed(function() {
var left = ko.utils.unwrapObservable(index) % 2 === 0;
return left ? "left" : "right";
});
ko.applyBindingsToNode(element, {
style: {
cssFloat: floatValue
}
});
}
};
サンプルは次のとおりです:http://jsfiddle.net/rniemeyer/B8YHc/
ブートストラップのクラスを使用する場合は、http: //jsfiddle.net/rniemeyer/VdLNQ/のように実行できます。左右に浮くだけなので、どちらの方法でも問題ありません。