0
让我们说,我们有以下指令:具有相同的指令多个后缀(angularjs)
app.directive('testList', function() {
return {
restrict: 'A',
link: function (scope, element, attrs) {
//do stuff
}
}
});
我想打电话从多个元素这个指令在HTML
<button test-list-add></button>
<table test-list="listObject">
<tr ng-repeat="list in testList">
<td test-list-click>list.item</td>
</tr>
</table>
是有可能为test-list
(test-list-add
,test-list
,test-list-click
)开头的每个属性进入link
函数?
谢谢
你可以尝试通过搜索属性,但什么是你想要做什么呢?你试图做的那种用法让我认为你应该看看transcluding。或者你应该在你的指令中指定一个模板,这样你就可以把所有的属性放在一个dom元素中,并生成你需要的模板 – Walfrat
谢谢你的评论,我也认为我应该看看transcluding,但是因为我是新手角我想逐步做到。据我了解transcluding帮助我重新格式化html,但如果我有事件在那里,我也应该使用$ compile,不是吗? – IsraGab
有两个使用transcluding,要么将ng-transclude放在您的模板中,要么在您的链接函数中调用它,如下所示:angular.element([ttransclude模板的元素])appendChild(transclude(scope。$ parent)) ;请注意,要具有作用域$ $ parent,您必须使用scope:true而不是隔离范围。对于事件部分,使用ng-click,ng-focus,ng-blur ......几乎包围所有本地事件,但是您可以在您的伪指令中注入$ compile并将其用于链接函数中,并在添加transcluded元素到结果。 – Walfrat