AngularJS获得指令属性并在绑定的Click事件上作为参数传递

时间:2017-11-16 04:24:19

标签: javascript angularjs

我是angularjs的新手,我想知道如何获取指令属性并将其作为我的Directive点击事件的参数传递,

这是我的HTML指令,<a>标签及其属性是动态创建的。我想要获取并作为参数传递的属性是idstatus

<a href='#' class='article-link' id='"+b.id+"' status='"+articleStatus+"' display-article-div-directive>

这是我的Angular Directive

myApp.directive("displayArticleDivDirective", function($parse,$rootScope)   {

        return function($scope, $element, $attrs) {

            var id =  $parse($attrs.id)($scope);
            var status =  $parse($attrs.status)($scope);
            var clickingCallback = function(id,status) {

                console.log('stat: '+status);
                /* status and id is undefined here */
            };
            $element.bind('click', clickingCallback);
        }
    });

我希望你能在这里粘贴一份工作样本,非常感谢,

1 个答案:

答案 0 :(得分:1)

在指令上使用作用域来启用数据传入,而不是解析元素。像这样:

app.directive("displayArticleDivDirective", function() {
  return {
    scope: {
      id: "=",
      status: "="
    },
    link: function(scope, element, attrs) {
      var clickingCallback = function() {
        console.log('stat: ' + scope.status);
        console.log('id: ' + scope.id);
      };
      element.bind('click', clickingCallback);
    }
  };
});

HTML:

<a href='#' class='article-link' id='"+b.id+"' status='"+articleStatus+"' display-article-div-directive>Test </a>

http://plnkr.co/edit/PLBQeQkLelbm9nHnBHIt?p=preview