如何使用Angularjs指令根据动态值改变文本颜色
How to change text color based on a dynamic value using Angularjs directives?
目标是创建一个指令,该指令可以根据动态值改变列表中显示的文本的颜色。
例如,我有一个数组:$scope.messages = [{user: "Eusthace", message: "Hello!", timestamp: 1431328718}];
对于每个用户,我想在消息列表中有不同的文本颜色。
要在HTML元素上设置css样式(例如color
),可以使用ngStyle
指令。根据控制器的动态值添加函数生成颜色:
var hashCode = function(str) {
var hash = 0;
for (var i = 0; i < str.length; i++) {
hash = str.charCodeAt(i) + ((hash << 5) - hash);
}
return hash;
};
var intToRGB = function(i){
var c = (i & 0x00FFFFFF)
.toString(16)
.toUpperCase();
return "00000".substring(0, 6 - c.length) + c;
};
$scope.generateColor = function(string) {
return '#' + intToRGB(hashCode(string))
};
在视图中使用它:
<span ng-style='{color: generateColor("dynamicValue")}'>Some Text</span>
例子:JSFiddle
相关文章:
- 用于根据用户改变文本区域的字体颜色的JavaScript'的选择
- Jquery改变文本框边框,但只有一次
- jQuery在选择选项时不改变文本
- JavaScript代码通过点击不同的图像来改变文本区域的值
- 多个显示/隐藏改变文本
- 改变文本拖动根据一些条件- Extjs 4
- 如何在元素悬停时动态改变文本
- 旧的javascript程序来改变文本和背景颜色的单元格
- 如何改变文本时倒数零
- 使用指令式Angular JS动态改变文本的颜色
- 改变文本区域onclick的值将插入符号置于一个奇怪的位置,但仅在IE中
- 如何在没有第三方JS库的情况下改变文本区域滚动条的颜色
- 如何使用Angularjs指令根据动态值改变文本颜色
- 随着HTML5范围滑动条的移动,不断改变文本框的值
- 改变文本的颜色在定时间隔
- 动态crm:用javascript改变文本方向
- 我的javascript只工作,它's不改变文本
- 谷歌可视化饼图-改变文本坐标
- 如何改变文本颜色的背景变化
- 我有一个按钮,可以在点击时改变文本,但不会变回来