AngularJS:在通过属性附加的指令中从TD获取文本,并在控制器$scope中引发事件



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

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

并且指令显示在这里。我确实试过玩element.pparent(),但这似乎不起作用。

.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()
      });

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

以前有人这样做过吗?

我认为您只需要在模板中添加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
    }
  };
});

最新更新