我似乎有一个小问题。我创建了一个指令,并通过现有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()
});
不确定我这样做是否正确。
之前有人这样做过吗?
答案 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
}
};
});