我知道這是不好的做法,具有比其他指令的任何地方DOM操作。但我不明白爲什麼在服務/工廠中進行DOM操作是一種糟糕的做法,因爲我們可以重用它們。爲什麼DOM操作在AngularJs服務中不是首選?
我在網上搜索,也發現了計算器 stackoverflow question
,但仍無法與明確的答案同樣的問題。
我知道這是不好的做法,具有比其他指令的任何地方DOM操作。但我不明白爲什麼在服務/工廠中進行DOM操作是一種糟糕的做法,因爲我們可以重用它們。爲什麼DOM操作在AngularJs服務中不是首選?
我在網上搜索,也發現了計算器 stackoverflow question
,但仍無法與明確的答案同樣的問題。
角如下declarative原理,這意味着
建築的結構和計算機 程序-表達計算的邏輯,而不描述 其控制流程
在元件的樣式同時介紹了在角度services
中包含業務邏輯。如果業務流程非常複雜 - 套件管理更好。
在,如果你有,你可能違反separation of concerns principle,因爲你是耦合的UI和業務層服務DOM操作的方式。當這些「可重用」組件(根據新的要求)在集成的模塊中應該看起來有點不同時,耦合本身最終會以spagetti-code結尾
根據定義,指令總是附加到DOM節點。所以當我們創建一個指令時,它會擴展或替換DOM節點。所以我們能夠通過指令來操作視圖應用程序的 服務與指令接合。但是,在某些情況下,您可能需要通過服務來操作DOM元素,就像在模式窗口中一樣。 我有這樣的情況下的經驗法則。可以直接使用附加節點完成DOM操作?對這個問題的回答告訴我,如果我需要使用指令(是)或服務(否),但總體上還取決於項目的複雜性。