我做了很多使用jQuery的DOM操作。 切換到角度已經大大地清理了我的代碼。這裏有浮現在腦海中的幾件事情:
做瑣碎的東西,就在HTML
一個簡單的事實,你可以做很多瑣碎的事情就在HTML擺脫很多JS的碼。下面的jQuery代碼要求我觀察複選框的更改,而不是根據選中的狀態,我必須顯示或隱藏下面的範圍。使用angularjs,不需要一行自定義js。
<input type="checkbox" ng-model="show"/>
<span ng-show="show">show me when checkbox is checked</span
沒有更多的在你的js代碼
每個HTML現在比你會發現自己循環槽的陣列,在你的js添加錶行或立的,而不是推EM到DOM。您基本上在您的JS文件中編寫HTML。使用ng-repeat
可以保持在HTML模板文件和環槽的陣列,就在你想建立一個表/表/等
<li ng-repeat="user in users">{{ user.name }}</li>
功能是在你的HTML更清晰
因爲jQuery在javascript代碼中使用選擇器,我經常發現自己正在搜索按鈕的實際功能。使用角度可以使用ng-click來調用一個函數。這使得看到HTML時實際發生的事情變得更加清晰。
<button ng-click="recalculateUsage()">recalculate</button>
沒有更多的佔位符
另一大好處是,顯示你的模板數據可以作爲{{ user.name }}
一樣簡單,而不是創建一個佔位符,你比填充使用jQuery。 $('#userName').html('my new content')
。
指令
指令是清理你的代碼的另一個好方法。很多使用過的元素可以存在於自己的js/template文件中,並且可以以簡單的方式插入到HTML中。
好處的更多細節,同時也爲您提供了JSON更容易獲得/ API等... – Schuere
此外,它本質上是通過採用模塊化設計,提供服務,控制器,工廠,過濾器,指令,攔截器,提供者。大多數服務,甚至核心都很容易擴展。這使得測試你的角度應用程序變得輕而易舉。然後是非常強大的承諾系統。由於它,你可以有自動重新登錄,自動記錄,自動錯誤處理和授權攔截器。而提及除數據綁定之外的其他內容+1。不過,我會補充說,jQuery可以發揮很好的角度,但應該在任何DOM操作的指令內使用。 – ste2425