我開始更好地學習angularJS,並且我注意到AngularJS試圖強調從控制器和封裝分離視圖。其中一個例子就是人們告訴我DOM操作應該在指令中進行。我現在已經掌握了它,以及如何使用注入當前元素的鏈接函數允許出色的行爲功能,但這並不能解釋我總是遇到的問題。如何訪問2個以上DOM元素「AngularJS方式」?
例如: 我有一個側欄,我想通過單擊按鈕打開。在沒有使用硬編碼的javascript/jquery選擇器來抓取邊欄的情況下,在按鈕的指令鏈接函數中沒有辦法做到這一點,這是我在angularJS(硬編碼dom選擇器)中非常不贊同的,因爲它打破了關注點分離。我想一個解決這個問題的方法是讓每個我希望操作屬性指令的元素以及它的鏈接函數,將它的元素屬性引用到dom工廠中,以便每當指令需要訪問除本身以外的元素時,它可以調用返回元素的dom工廠,即使它不知道它來自哪裏。但是,這是「角度的方式」?
我這樣說是因爲在我當前的項目中,我使用硬編碼的選擇器,這已經是一種痛苦,因爲我經常更換我的css。必須有更好的方法來訪問多個DOM元素。有任何想法嗎?
通常可以使用範圍變量(或服務)和「ng-class」或「ng-show」等來做這種事情。兩者都允許使用ng-animate。好的做法是在添加更多自己的dom操作之前考慮如何使用內置指令的數據綁定 – charlietfl