如何在angularjs

时间:2016-04-06 08:05:08

标签: javascript jquery angularjs

我是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 
    }



    });
  });

1 个答案:

答案 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 
  }
});