2013-12-14 58 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。 –

相關問題