Domanda

Sto riscontrando problemi con le associazioni dei nomi di classe.Ecco il codice jsfiddle per lo stesso.Registrazione del numero di volte in cui viene chiamato il binding.Non viene mai chiamato quando la proprietà viene modificata.

È stato utile?

Soluzione

Sembra che tu abbia un paio di problemi qui. In primo luogo, se si desidera che le proprietà vengano ricalcolate quando il contenuto di un array cambia, non è possibile dipendere solo dalla proprietà dell'array stessa: attiverà una modifica solo quando è impostato su un array diverso. Se invece dipendi da myArray.@each, la tua proprietà verrà ricalcolata anche quando cambieranno i contenuti.

Successivamente, il modello contenente lo span non viene visualizzato perché stai fornendo un modello di visualizzazione vuoto nella dichiarazione della vista del manubrio. Cambia il tuo "HTML" in:

{{view App.contact}}

e verrà visualizzato il tuo intervallo.

Infine, l'esecuzione di Ember.run.sync() non sembra essere sufficiente qui. Non sono così chiaro il motivo alla base di questo, ma ... le proprietà calcolate si aggiornano solo quando vengono lette (rispetto agli osservatori che si aggiornano immediatamente). Ipotizzerei che poiché la proprietà calcolata viene utilizzata solo dalla vista e la vista può essere aggiornata solo in una successiva esecuzione attraverso il ciclo di eventi JS, la proprietà calcolata viene ricalcolata solo una volta per tutte le modifiche a "subordinati". Modifica il codice per utilizzare i timeout e funzionerà correttamente.

Ecco un jsfiddle con tutte le mie modifiche proposte.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top