淘汰foreach css多班$ data

时间:2013-01-21 11:32:07

标签: css knockout.js

在这个例子中,我还有两个我想要添加到DIV的css类。

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

第一个是基于布尔值的'tile-selected'。这很有效。

第二个实际上是一个类'Triple'的名称,(在这个例子中,总是添加它,即'True')

我收到错误:

  

未捕获错误:无法解析绑定。   消息:SyntaxError:意外的令牌。   绑定值:css:{'tile-selected':true,$ data.size:true}

我假设我不能使用$ data.size部分从'size'属性中提取'Triple'文字。有没有办法可以做到这一点? ($ data ['size']似乎也不起作用)

1 个答案:

答案 0 :(得分:1)

您不能将ko observables或属性用作类名。相反,你必须为此创建一个单独的属性,并使用相同的动态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