2013-01-18 18 views
7

Sto tentando di ripristinare la mia raccolta senza attivare l'evento 'reset'. Ho creato la mia collezione di ascoltare entrambi gli eventi 'Reset' e 'aggiungi'L'impostazione {silent: true} quando si ripristina una raccolta attiva ancora l'evento 'reset'

@.listenTo(@options.muses, 'add', @addOne) 
@.listenTo(@options.muses, 'reset', @addAll) 

Quando clicco su un pulsante, la prima cosa che voglio fare è quello di cancellare la collezione

optionButtonClicked: (e) -> 
    e.preventDefault() 
    target = @$(e.currentTarget) 

    //step to clear out the collection 
    @options.muses.reset({silent:true}) 

Tuttavia, quando ho eseguito alcune operazioni di registrazione e controllo, mi sono reso conto che l'evento "reset" era ancora in fase di attivazione, ovvero che la funzione @addAll era ancora chiamata.

Mi manca qualcosa qui? Non è silenzioso: true suppone di sopprimere l'evento di reset?

risposta

13

Il ripristino richiede due parametri opzionali, i modelli 1 °, 2 ° opzioni. Dai documenti: resetcollection.reset([models], [options]).

quindi è necessario passare l'opzione silent come secondo parametro.

@options.muses.reset(undefined, {silent:true}); 
+0

Capito. Grazie! – Zhen