我似乎有一个小问题。我已经创建了一个指令,并通过现有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
}
};
});
源