2013-12-14 57 views
4

我已经搜索了很多以找到对我来说似乎最基本的问题的答案,但令人惊讶的是没有成功。官方文件也没有给我答案。 所以简单的问题是:如何访问指令链接函数内的同级元素?Angularjs指令:访问链接功能中的同级元素

我有一个ng重复的视图。我的指示绑定每个ng-repeat元素的点击:

link: function (scope, element) { 
    element.bind('click', function() { 
     // how to access element.siblings here ? 
... 

Thanx。

+1

你试过'element.siblings()'吗?发布指令 – Satpal

+0

的完整代码为什么不使用'ng-click'?请显示更多代码。目标是什么? – charlietfl

+0

@Satpal实际上'angular.element'中使用的'jQlite'没有'siblings'方法,除非加载了jQuery – charlietfl

回答

5

如果你正在使用jQuery,你可以使用.siblings()函数。如果您只有angular.element,则可以使用.next()函数访问后续的兄弟姐妹。

但是,由于您使用的是angularjs,因此我建议依靠模型进行这种交互,而不是使用“jQuery”方式访问DOM元素。如果你提供了更多关于你想要做什么的细节,有人可能会提出一个更好的方法(从设计角度)来实现你的目标。

+0

我不想包含jQuery。 .next()函数对我的问题不是很优雅。看到我的评论上面有一个链接到我真正的问题。感谢名单。 – peaceLion

+0

好的,我回答了你的其他问题。在这种情况下,您绝对应该避免更改同级元素的类。 angular.element不支持对兄弟姐妹的访问是有原因的。 – lex82

+0

同意在指令中使用模型(在其范围内使用变量+函数)。您可以像正常一样使用指令的控制器和模板,包括Angular绑定,{{}}插值和其他指令,如ngClick,ngIf和ngClass。除非你有特殊原因,比如与外部传统插件交互,否则这些工具可能意味着你不需要触摸DOM。 –

相关问题