[英]AngularJS: Getting KeyValuePairs in Directive
我目前正在编写AngularJS指令,当我将鼠标悬停在特定元素上时,该指令允许我设置某些类。
因此,我创建了以下指令:
OfficeUIModule.directive('toggleStyleAttributeOnHover', function() {
return {
restrict: 'A',
link: function(scope, element, attributes){
var toggleStyleAttributes = attributes['toggleStyleAttributeOnHover'];
element.bind('mouseenter', function() {
console.log(toggleStyleAttributes);
});
}
}
})
创建HTML时,我确实将属性传递给了元素,从而允许执行该指令。
如下所示:
data-toggle-style-attribute-on-hover="{'color': {{contextualGroup.GroupTextColor}}}"
当我现在执行页面时,在浏览器的控制台窗口中,确实看到以下输出: {'color': #cf5c0a}
因此,这看起来不错,但是现在我需要解析此对象,以便可以添加样式属性,说颜色应该是#cf5c0a
当然,该指令可能会接受几个参数,这意味着应将它们全部考虑在内。
我在这里迷路了。
为了将字符串解析为对象,我认为您应该像这样格式化字符串:
{"color": "#cf5c0a"}
将键和值放入“”。
使用2向绑定而不是属性
angular.module('MyApp', []).directive('toggleStyleAttributeOnHover', function() {
return {
restrict: 'A',
scope: {
config: '=toggleStyleAttributeOnHover'
},
link: function(scope, element){
element.bind('mouseenter', function() {
element.css('color', scope.config.color);
});
}
}
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.