2015-09-29 16 views
5

Utilizzando Ember.2.1.0-beta4Ember Ember-views.render-doppio modificare

Sto ottenendo il "tizzone-views.render-doppio modificare" in una funzione innescata dai "didReceiveAttrs" di un sottocomponente.

Ho rintracciato la dichiarazione this.set('_columns', columns) che fa scattare l'errore. Tuttavia, AFAIK questa è la prima volta che l'attributo viene modificato.

Per eseguire il debug, ho creato un osservatore per l'attributo modificato e vi ho inserito un punto di interruzione. Tuttavia, l'osservatore viene chiamato solo una volta e l'errore è ancora lì, quindi sembra che questa sia la prima chiamata.

Come si esegue il debug di questo - si tratta di un bug di Ember o ci sono altre restrizioni sull'impostazione di attributi che non sono chiari nell'errore? Si noti che l'attributo è utilizzato nel modello del componente. Inoltre, l'attributo viene utilizzato in altri attributi calcolati (ad esempio [email protected]ach.width e _columns.[]).

risposta

6

Per i posteri, la risposta nel mio caso è stata: _columns è utilizzato nel modello. Pertanto, per didReceiveAttrs del sottocomponente da chiamare, il valore precedente di _columns era già utilizzato.

Il messaggio di errore è un po 'fuorviante, ma l'idea, penso, è che una volta iniziato a eseguire il rendering non è possibile modificare le proprietà finché non si è fatto. Se necessario, utilizzare Ember.run.scheduleOnce('afterRender', ...).