如何在Angular 1.4及更高版本中使用ng-options选择ng-class

时间:2016-01-18 10:17:44

标签: javascript angularjs angularjs-directive ng-options ng-class

我的问题类似于以下帖子之一:How to use ng-class in select with ng-options

我希望能够使用CSS自定义select中的特定选项。如果我恢复使用的例子,我有一个像这样的人:

var persons = [
{Name:'John',Eligible:true},
{Name:'Mark',Eligible:true},
{Name:'Sam',Eligible:false},
{Name:'Edward',Eligible:false},
{Name:'Michael',Eligible:true}
];

现在我希望能够编写如下代码,以便将不同的人展示给另一个不符合要求的人:

<select ng-model="Blah" ng-options="person.Name for person in persons" ng-class="{'is-elligible': person.Elligible}"></select>

但是在此代码中,我无法访问person代码中的ng-class变量。

事情是在另一篇文章中,解决方案是基于cutom指令,它在1.4之前的角度很好。现在这个解决方案已经不再适用了。

可能的解决方案也不是使用ng-options,而是在ng-repeat标记中使用option。但我仍然希望使用ng-options,因为它似乎更快更容易使用。

因此,如果任何人有角度1.4及更高版本的任何解决方案,那么分享它会很棒! :)

提前致谢

1 个答案:

答案 0 :(得分:1)

你不能用普通ng-options来做。

您应该使用ng-repeatcustom指令来实现所需的行为。如果您描述的情况如此简单,我建议您使用ng-repeat作为实现该行为的常用方法。

考虑深入了解已有的答案: Customize ng-options selection look它会回答你的问题。

p.s。没有注意到使用ng-repeat,因为在特殊情况下,使用已存在的指令比创建新指令和向其添加单元测试更容易 我知道ng-repeat比较慢......