AngularJS:通过属性获取TD中的文本并在控制器$ scope中引发事件?

时间:2013-12-02 15:10:07

标签: angularjs angularjs-directive angularjs-scope

我似乎有一个小问题。我创建了一个指令,并通过现有DIV上的属性插入指令,见下文。

<td my-directive>This Text I want to get hold of in my directive</td>

并且此处显示指令。我确实尝试过使用element.parent(),但这似乎不起作用。

.directive('myDirective', function () {
    return {
      template: '<div></div>',
      restrict: 'A',
      link: function(scope, element, attrs) {
        element.text(element.parent().text); // Doesn't work
      }
    };
  });

我希望TD继续其正常操作,即使用TD元素显示文本。但它的空白,所以我想在指令中重新注入它,但为什么它是空白的?

实际上我要做的是点击指令的任何部分我想做一些内部事情,然后在$ scope上引发一个由控制器共享的事件,即

      element.click(function(){
          //alert("direc clicked");
          scope.onClick()
      });

不确定我这样做是否正确。

之前有人这样做过吗?

1 个答案:

答案 0 :(得分:1)

我认为您只需在模板中添加ng-transclude

.directive('myDirective', function () {
  return {
    template: '<div ng-transclude></div>',
    transclude: true,
    restrict: 'A',
    link: function(scope, element, attrs) {
      element.text(element.parent().text); // Doesn't work
    }
  };
});

source

相关问题