2012-10-21 13 views
8

Qualcuno può spiegarmi lo scopo di arrangedContent.Ember.js e arrangementContent

La documentazione spiega che può essere sovrascritto in sottoclassi:

La matrice che il proxy finge di essere. Nell'implementazione ArrayProxy predefinita, questo e il contenuto sono gli stessi. Sottoclassi di ArrayProxy possono sovrascrivere questa proprietà per fornire elementi come l'ordinamento e il filtraggio.

Quello che mi confonde è il suo rapporto con il contenuto. Posso vedere nella fonte che ha una proprietà calcolata sul contenuto:

arrangedContent: Ember.computed('content', function(){ 
    return this.get('content'); 
} 

penso a ragione nel dire che non si dovrebbe mai legarsi al contenuti ma invece legarsi al arrayProxy stesso.

Suppongo che lo stesso vale per arrangedContent?

È sufficiente utilizzare il dispostoContent per filtrare l'array in base alle proprie esigenze e collegarlo all'arrayProxy stesso o mi manca qualcosa?

risposta

10

Si è completamente corretto: si deve sempre indirizzare il proxy stesso quando si esegue il binding a valori o si attivano metodi come addObject. Avere un valore arrangedContent consente a Ember di manipolare le proprietà della raccolta come il suo ordinamento o l'elemento selezionato senza modificarle nell'array sottostante.

Poiché una singola matrice di oggetti può essere i dati sottostanti per molte parti di un'applicazione, non si vorrebbe necessariamente modificare la matrice stessa.

Croft di Jame ha una grande guida parlando di proxy: http://matchingnotes.com/ember-array-proxy

+0

Se ho una proprietà calcolata solo sui contenuti, come sopra, la proprietà arrangedContent calcolata viene attivato solo quando la matrice è inizializzata. Ho pensato che potrebbe essere attivato quando è stato associato a un modello di manubri. C'è qualcos'altro che dovrei fare? – dagda1

+1

Più un milione se potessi, per la guida collegata. Un tutorial molto * ben scritto su ArrayProxy che era la risposta che non sapevo di cercare. – chris