mardi 22 septembre 2015

Returning dictionary of Promises for asynchronous EmberJS route

I'm learning how to use Ember promises with async routes, and stumbling a bit here. If I write my route like so:

App.ActivitiesRoute = Ember.Route.extend({
    model: function() {
        return getClient().getActivities()
    }
});

Where getActivities() returns an Ember.RSVP.Promise type, I can use in my template:

{{#each activity in model}}

However, I would rather not have my entire base model subsist of a single attribute. When I try this:

App.ActivitiesRoute = Ember.Route.extend({
    model: function() {
        return {
            activities: getClient().getActivities()
        }
    }
});

And change my template to:

{{#each activity in model.activities}}

I receive an error message:

"Uncaught Error: Assertion Failed: The value that #each loops over must be an Array. You passed {_id: 82, _label: undefined, _state: undefined, _result: undefined, _subscribers: }"

And I'm not sure how to return a named collection of Promises that can be accessed individually in my template.




Aucun commentaire:

Enregistrer un commentaire