Ora che Object.observe()
è attivato per impostazione predefinita in Chrome, sto eseguendo un sacco di casi in cui voglio riutilizzare la proprietà incorporata del browser (hidden
, title
, draggable
), ma gli osservatori *Changed
non vengono più chiamati quando la proprietà cambia.Utilizzo degli osservatori delle modifiche per osservare le proprietà native in Object.observe()
Un esempio è hidden
: http://jsbin.com/jizikaje/1/edit (hiddenChanged()
non viene mai chiamato)
mia soluzione attuale è quella di utilizzare attributeChanged()
per osservare l'attributo cambiando:
attributeChanged: function(attrName, oldVal, newVal) {
// Cannot use *Changed watchers for these native properties.
if (attrName == 'hidden') {
this.marker.setVisible(!this.hidden);
}
}
Qual è l'approccio consigliato?
BTW, lanciando un avvertimento quando si tenta di utilizzare le proprietà native andrà un lungo per il debug: https://github.com/Polymer/polymer/issues/379
Sembra che "alert()" mi stia succedendo in Chrome 34. Forse è stato corretto? – jokeyrhyme
Chrome 34 non ha Object.observe(). Usa il controllo sporco. – ebidel
Ah si, questo ha senso. Il DOM non è stato ancora spostato in V8, quindi Object.observe() probabilmente non funziona sugli elementi DOM. – jokeyrhyme