Knockout选项有条件的css

时间:2013-04-17 12:27:22

标签: javascript html knockout.js

我有一个可观察的对象数组

question = {
        ownerUserName: item.id,
        text: item.text,
        dataType: item.dataType,
        personalized: item.personalized,
        status: item.status,
        actionUserName: item.actionUserName
    }

使用此数组中的选项进行选择:

<select id="questId" style="width: 425px" data-bind="options: questionList, optionsText: 'text'">

如果在淘汰赛的帮助下我可以这样做,如果问题。个性化==“Y”这个问题的文字颜色会是绿色的吗?

3 个答案:

答案 0 :(得分:4)

最好的选择是css binding

根据您的需要快速调整文档

<div data-bind="text: personalized, css: personalizedStatus">
   Profit Information
</div>

<script type="text/javascript">
    question.personalizedStatus = ko.computed(function() {
        return this.personalized() == "Y" ? "green" : "red";
    }, question);

</script>
<style>
    .green {color:green;}
    .red{color:red;}
</style>

答案 1 :(得分:3)

您可以使用 foreach 代替通常的选项绑定。像

这样的东西
<style>
   .highlighted{
      background-color: red;
   }
</style
<select id="questId" style="width: 425px" data-bind="foreach: questionList">
   <option data-bind="text: text, class: {highlighted: personalized == 'Y'}">
</select>

答案 2 :(得分:1)

还可以选择设置data-bind =“style:{color:value?'green':null}”

这不是最佳选择(最好是设置新课程),但可能