domanda Ember abbastanza facile, qui, (spero!).Ember Router registra errore: "il contenuto di Ember.CollectionView deve implementare Ember.Array"
Ho una semplice configurazione di dati di brace. Un'unica app ha molte versioni. Ecco il mio modello di App:
App.App = DS.Model.extend({
name: DS.attr('string'),
publicKey: DS.attr('string'),
versions: DS.hasMany('App.Version', { key: 'version_ids' })
});
Il mio router è abbastanza semplice:
App.Router = Ember.Router.extend({
location: 'hash',
root: Ember.Route.extend({
index: Ember.Route.extend({
route: '/',
redirectsTo: 'dashboard'
}),
dashboard: ...,
app: Ember.Route.extend({
route: '/:app_id',
connectOutlets: function(router, app) {
router.get('applicationController').connectOutlet('appTest', app);
},
index: Ember.Route.extend({
route: '/',
connectOutlets: function(router) {
appTestController = router.get('appTestController');
appTestController.connectOutlet('addCommentOutlet', 'addComment', {});
appTestController.connectOutlet('versions', appTestController.get('content.versions'));
}
})
})
})
});
E i punti di vista e controller simile a questa:
App.AppTestView = Ember.View.extend({
templateName: 'app_test'
});
App.VersionsView = Ember.View.extend({
templateName: 'versions'
});
App.AppTestController = Ember.ObjectController.extend({
});
App.VersionsController = Ember.ArrayController.extend({
});
Quando eseguo purtroppo ottengo l'errore : an Ember.CollectionView's content must implement Ember.Array. You passed <App.Version:ember519>
.
È interessante notare che se aggiungo parentesi intorno a [appTestController.get('content.versions')]
nel router non si lamenta e crea una matrice con il primo oggetto Versione correttamente. Ma non sembra voler mostrare più di un oggetto.
Qualche consiglio?
L'errore è dritto in avanti, si dice che App.Version non è una matrice instanceof, Sembra che si sta tentando di impostare un oggetto di proprietà contenuto Collezione Vista (il cui codice non riesco a vedere in questione), che è di tipo Ember.Array() ... Cancella me Se ho torto –
Questa è la cosa divertente però. Voglio inviare l'array di contenuti con una serie di contenuti: ad eccezione di 'appTestController.get ('content.versions')' restituisce un singolo oggetto invece di un array ?! –
appTestController è ObjectController o ArrayController? e anche come stai interrogando il negozio? –