angularjs - Angular 选择中的选项颜色
问题描述
如何为 angular 下拉菜单中的每个选项分配字体颜色?
我试图通过添加
ng-style="{color:{{selectedCar.dropdown_color}};}"
到选择标签来做到这一点,但它不起作用。
<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
$scope.cars = {
car01 : {brand : "Ford", model : "Mustang", dropdown_color : "red"},
car02 : {brand : "Fiat", model : "500", dropdown_color : "green"},
car03 : {brand : "Volvo", model : "XC90", dropdown_color : "blue"}
}
});
</script>
<body>
<div ng-app="myApp" ng-controller="myCtrl">
<p>Select a car:</p>
<select ng-model="selectedCar" ng-options="y.brand for (x, y) in cars"
ng-style="{color:{{selectedCar.dropdown_color}};">
</select>
<h1>You selected: {{selectedCar.brand}}</h1>
<h2>Model: {{selectedCar.model}}</h2>
</div>
</body>
</html>
解决方案
该ngStyle
指令采用 AngularJS 表达式。
所以你必须写ng-style="{color:selectedCar.dropdown_color}"
。但它会将所有选项的文本颜色更改为所选汽车之一。
如果您想在属性中定义颜色中的每个选项,dropdown_color
则必须ngRepeat
改用并更改您的选择
<select ng-model="selectedOption"
ng-options="y.brand for (x, y) in cars"
ng-style="{color : selectedCar.dropdown_color}">
</select>
成为
<select ng-model="selectedCar"
ng-change="selectedCar = cars[selectedOption]"
ng-style="{color : selectedCar.dropdown_color}">
<option ng-repeat="(key, value) in cars"
ng-style="{color: value.dropdown_color}"
ng-value="key"
ng-bind="value.brand"></option>
</select>
推荐阅读
- django - 如何在单个 django 视图中组合两个 ModelForm
- ssl - 有没有办法在 Active Directory 中强制实施 SSL 或 TLS?
- r - R *** 捕获 segfault *** 地址 0x6,导致“内存未映射”
- php - PHP问题:无法通过关联数组打印行号白色循环
- swiftui - SwiftUI Navigationlink 或 Presentation Link 不起作用
- git - 在 Visual Studio 2019 中,我可以将我的本地源代码控制存储库设置到我的解决方案文件夹以外的其他位置吗?
- apache-spark - 谓词下推不适用于 Spark Dataframe 中的完全外连接
- php - 特定wordpress localhost/文件夹被重定向到https://localhost/folder,其他文件夹正常工作
- amazon-web-services - API Gateway:任意子路径代理?
- c++ - 从初始化列表中初始化 unique_ptr 的向量失败