通过Angular自定义指令传递数据

时间:2016-09-27 18:51:18

标签: javascript angularjs angularjs-directive angularjs-scope

我用angular创建了一个自定义指令。我想通过使用范围的指令传递父数据,但我得到了未定义的'当我记录范围和范围.questionId。

HTML

<a class="waves-effect waves-light btn" my-directive="" on-flag="someFunction" question-id="question">Flag</a>

角度指令

angular.module('myApp').directive('myDirective', function($http) {
  return {
    restrict: 'A',
    scope: {
      onFlag: '&onFlag',
      questionId: '='
    },
    link: function(scope, element, attrs) {
      element.click(function() {
        console.log(scope);
        console.log(scope.questionId);
        return;
      });
    }
  };
});

1 个答案:

答案 0 :(得分:3)

试试这个

elem.bind : - 它使用的是JQuery的精简版JQLite。这里我们编写代码来处理在指令上执行的click事件。 它与JQuery $(“class or id”)相同.Click()。 (我希望这个解释已经足够了)

angular.module('myApp').directive('myDirective', function($http) {
  return {
    restrict: 'A',
    scope: {
      onFlag: '&onFlag',
      questionId: '='
    },
    link: function(scope, elem, attrs) {
     		elem.bind('click', function() {
        	console.log(scope.questionId);
      });
    }
  };
});