我是angularjs的新手。我有一个div #single我想改变背景颜色,然后想在click事件上调用后端服务器。我不知道如何在angularjs自定义指令中这样做。任何帮助将表示赞赏 我的HTML代码
<div id="single" class="" ng-style="{'background':x.is_read == 0 ?
'rgba(98, 95, 95, 0.87)': '#A4A4A4'}" ng-repeat="x in notification" chang-color>
changColor是具有以下代码的指令。请帮我怎么做
var app = angular.module('smac', []);
app.controller('asd',function ($http,$scope) {
app.directive("changColor", function() {
return {
restrict: 'A',
scope: {},
link: link
};
function link (scope, element) {
element.on('click', onClick);
}
function onClick () {
alert('as');
$(this).css({ 'background': '#A4A4A4' });
// after this back end call
}
});
});
答案 0 :(得分:1)
您应该使用element.bind
代替element.on
。
目标元素可以通过事件目标或简单地访问。
var app = angular.module('smac', []);
app.controller('asd',function ($http,$scope) {
// this is controller body
});
app.directive("changColor", function() {
return {
restrict: 'A',
scope: {},
link: link
};
function link(scope, element) {
element.bind('click', onClick);
}
function onClick (e) {
alert('as');
// Following lines as equal
e.target.style.background = "#A4A4A4";
this.style.background = "#A4A4A4";
angular.element(this).css("background","#A4A4A4");
// after this back end call
}
});