我有一个有角度的指令" spyStyle" 我希望尽可能使其可用。 所以...我希望能够根据正在观看的内容调用不同的回调函数。
这是我的代码
.directive('spyStyle', [function () {
return {
link: function (scope, element, attrs) {
scope.$watch(function () {
return element.css(attrs['spyAttribute']);
}, styleChangedCallBack, true);
function styleChangedCallBack(newValue, oldValue) {
if (newValue !== oldValue) {
// do something interesting here
}
}
}
};
}]);
答案 0 :(得分:0)
我相信这已经完成了 - 我必须在watch函数之前运行if语句。 还有其他人有其他建议???
if ((attrs['spyAttribute']) = 'background-color') {
alert("background-color");
scope.$watch(function () {
element.css('color', 'black');
return element.css(attrs['spyAttribute']);
}, bgStyleChangedCallBack, true);
} else {
alert("something else");
scope.$watch(function () {
//element.css('color', 'black');
return element.css(attrs['spyAttribute']);
}, styleChangedCallBack, true);
}
以下是完整代码https://jsfiddle.net/acts7/5Ls46ebx/
full指令检查元素的背景颜色并更改文本以使其可读。 然后检查背景颜色是否发生变化,并在必要时应用新的文本颜色。