如何根据文本长度有条件地添加一个类

时间:2014-11-03 20:18:14

标签: knockout.js

我有以下标签:

<label class="col-md-8 boldLabel" data-bind="text: AuditorName, css: { 'border1pxsolid borderblack': AuditorName.length }"></label>

当我运行我的页面时,AuditorName填充正常,但我没有应用border1pxsolid borderblack样式。我试图获取它,以便如果AuditorName具有值而不是空字符串,则将两种样式应用于标签。

如果我将AuditorName.length条件更改为true == true,则可以正常工作。有没有其他方法可以检查AuditorName字段是否已填充,然后才应用这些样式?

1 个答案:

答案 0 :(得分:1)

您可以直接绑定到AuditorName,因为如果它不是空字符串,它将评估真实情况:

<label class="col-md-8 boldLabel" 
      data-bind="text: AuditorName, css: {'border1pxsolid borderblack': AuditorName}">
</label>

它不能正常工作的原因是AuditorName是一个可观察的,因此您必须对其进行评估才能访问其length属性。所以这也有效:

<label class="col-md-8 boldLabel" 
      data-bind="text: AuditorName, 
                 css: {'border1pxsolid borderblack': AuditorName().length}">
</label>