當$ $觀察其名稱中帶有下劃線或駱駝案例的變量時,$ watch不會觸發。如果$ watch'ed的變量名不包含任何下劃線或駱駝的情況下,它的作品。我沒有發現任何關於Angular文檔中的$ watch'ed變量名的討論。
下面是在$手錶未能觸發代碼: http://jsbin.com/potiferixu/1/edit?html,console,output
下面是在$表得到正確觸發代碼: http://jsbin.com/sulugukaka/2/edit?html,console,output
唯一的區別是變量名。
謝謝@thebelowcode,你回答了我的問題。您是否會將$ watch從field_with_underscore更改爲fieldWithUnderscore? – 2015-04-03 10:41:10
這是一個約定,我不會重命名它,因爲我想尊重AngularJS約定。但它可能會令人討厭,記得第一次,並造成麻煩 – Michael 2015-04-03 10:45:04
事情是,如果你像'scope。$ watch('field_with_underscore',function(){',當你點擊更改按鈕,$ watch如果行被改爲'scope。$ watch('fieldWithUnderscore',function(){'在你的例子中:http://jsbin.com/zuhofajesa/2/edit – 2015-04-03 10:47:55