1

この例では、DIV に追加したい 2 つの追加の css クラスがあります。

    <div data-bind="foreach: [{name: 'Hello', size:'Triple'}]">
      <div class="tile"
       data-bind="css: {'tile-selected': true, $data.size : true}">
      </div>
    </div>

最初は、ブール値に基づいて「タイル選択」されています。これはうまくいきます。

2 番目は、実際にはクラス「Triple」の名前です (この例では、常に「True」などを追加します)。

エラーが発生します:

不明なエラー: バインドを解析できません。メッセージ: SyntaxError: 予期しないトークン .; バインディング値: css: {'tile-selected': true, $data.size: true}

$data.size 部分を使用して「サイズ」プロパティから「トリプル」リテラルを取得できないと想定しています。これを行う方法はありますか?($data['size'] も機能していないようでした)

4

1 に答える 1

1

ko オブザーバブルまたはプロパティをクラス名として使用することはできません。代わりに、このために別のプロパティを作成し、以下のような動的 css バインディングに同じものを使用する必要があります。

<div data-bind="css: sizeCSS">   Profit Information</div> 

var viewModel = {
/// some view model properties here.
        };

viewModel.sizeCSS = ko.computed(function() {
    return this.size();
}, viewModel);

編集: ここで動的 CSS バインディングの例を確認してください: http://knockoutjs.com/documentation/css-binding.html

于 2013-01-21T13:07:16.050 に答える