我知道我参加聚会有点晚了,但对于那些想用纯 CSS 解决这个问题的人,不使用指令你可以像这样创建一个 css 类:
select.blueSelect option[value="false"]{
color:#01aac7;
}
这条 css 规则说:在每个具有类“blueSelect”的“select”中查找 value = false 且标签名称为“option”的所有元素,并使文本颜色 #01aac7; (蓝色的阴影)
在您的情况下,您的 HTML 将如下所示:
<select class="form-control blueSelect" name="persons" id="persons1"
ng-options="person as person.name for person in $ctrl.persons track by person.Eligible"
ng-model="$ctrl.selectedPerson" required>
<option disabled selected value="">Default value</option>
</select>
ng-options 中的 track by 将保存跟踪选项的内容,或每个选项的“值”字段。请注意,根据您的项目需求,您可能需要进行一些调整才能根据您的要求进行这项工作。
但是,当 Eligible 字段有多个具有相同值的选项时,这将无法正常工作。因此,为了完成这项工作,我们创建了一个复合表达式来跟踪,这样我们就可以在每个选项中拥有唯一的值来跟踪。在这种情况下,我们结合了 Name 和 Eligible 这两个字段
所以现在我们的 html 看起来像这样
<select class="form-control blueSelect" name="persons" id="persons2"
ng-options="person as person.name for person in $ctrl.persons track by (person.name + person.Eligible)"
ng-model="$ctrl.selectedPerson" required>
<option disabled selected value="">Default value</option>
</select>
还有我们的css:
select.blueSelect option[value*="False"]{
color:#01aac7;
}
注意 value 旁边的 *,这是一个正则表达式,意思是在 option 元素的 value 字段的某处找到单词“False”。
快速编辑
您还可以使用 ng-options 表达式中的“disable when”来选择禁用 Eligible = False 的选项,例如:
label disable when disable for value in strong> array track by trackexpr
我会在你的情况下留下如何使用它,让你找出来;-)
这适用于简单的 css 修改,对于更复杂的东西,您可能需要指令或其他方法。在 chrome 中测试。
我希望这对那里的人有所帮助。 :-)