將AngularJS與其他JavaScript-MVC框架區分開來的一件事是它能夠使用綁定將綁定值從JavaScript回顯爲HTML。當你將任何值賦給$ scope變量時,Angular會自動執行此操作。AngularJS中的綁定和消化如何工作?
但是這是多麼自動?有時,Angular不會接受更改,因此我需要調用$ scope。$ apply()或$ scope。$ digest()來通知角度以獲取更改。有時當我運行這些方法時,它會拋出一個錯誤,並說摘要已經在進行中。
由於綁定({{}}括號或ng屬性內的任何內容)都與eval一起回顯,這是否意味着Angular不斷輪詢$ scope對象以查找更改,然後執行eval來推送這些更改到DOM/HTML?或者AngularJS以某種方式計算出使用魔術變量來觸發變量值更改或分配時觸發的事件?我從來沒有聽說過它被所有瀏覽器完全支持,所以我對此表示懷疑。
AngularJS如何跟蹤它的綁定和範圍變量?
我發現http://docs.angularjs.org/guide/concepts#runtime中以「這是關於Hello world示例如何實現數據綁定效果的解釋」爲開始的部分很有幫助。 –
這篇文章也是有用的,如果你還沒有看到它:http://stackoverflow.com/questions/9682092/databinding-in-angularjs/9693933#9693933 – Gloopy
評論你的第一個聲明段落:Angular的「回聲綁定的能力使用綁定將JavaScript中的值轉換爲HTML「聽起來像是說」數據綁定「的混淆方式。此時此刻它並沒有真正將Angular與其他框架(如Ember或React)區分開來。 這個問題很有用,不要誤解我的意思。但是,第一段只是一個我不同意的觀點 - 我會編輯這個問題,但我覺得不夠權威。 –