首先angular是一個mvc框架, 使用mvc解耦, 采用model, controller以及view的方式去組織代碼,
會將一個html頁面分成若干個模塊, 每個模塊都有自己的scope, service, directive,
各個模塊之間也可以進行通信, 但是整體結構上是比較清晰的, 就是說其代碼組織是模塊化的, angular的view可能僅僅是一個框架, ,
對view的dom操作或者時間監聽都是在directive中實現的, 而且一般情況下很少直接去寫dom操作代碼, 只要你監聽model, model發生變化后view也會發生變化, 就是雙向綁定機制, angularjs適用於單頁面開發
在angularJS中,一個模板就是一個HTML文件。但是HTML的內容擴展了,包含了很多幫助你映射model到view的內容。
HTML模板將會被瀏覽器解析到DOM中。DOM然后成為AngularJS編譯器的輸入。
AngularJS將會遍歷DOM模板來生成一些指導,即,directive(指令)。所有的指令都負責針對view來設置數據綁定。
auguarJS並不把模板當做String來操作。輸入angularJS的是DOM而非string。數據綁定是DOM變化,
不是字符串的連接或者innerHTML變化。使用DOM作為輸入,而不是字符串,是AngularJS區別於其它的框架的最大原因。
使用DOM允許你擴展指令詞匯並且可以創建你自己的指令,甚至開發可重用的組件。angular占用的內存較小, 可以兼容主流的瀏覽器, 他擁有內置的依賴注入的子系統, 可以幫助開發人員更容易開發, 理解和測試和應用, DI允許你請求你的依賴,而不是自己找尋它們。比如,我們需要一個東西,DI負責找創建並且提供給我們。那么AngularJS可以做到。指令可以用來創建自定義的標簽。它們可以用來裝飾元素或者操作DOM屬性。