Rick
Rick

Reputation: 21

Ember.computed.sort on belongsTo properties

I am trying to use Ember.computed.sort and can't figure out how to sort by the name of a belongTo property. I have been on GOogle for hours and can't find the right combination. help please!

// my model
export default DS.Model.extend({
        targetName: DS.attr(),
        targetType: DS.attr(),
        rack: DS.belongsTo('rack', {async: true}),
});

// this works:
export default Ember.Controller.extend({
    sortedTargets: Ember.computed.sort('model', 'sortDefinition'),
    sortDefinition: ['targetType']
});

// this doesn't work :
export default Ember.Controller.extend({
    sortedTargets: Ember.computed.sort('model', 'sortDefinition'),
    sortDefinition: ['rack.name']
});

Upvotes: 0

Views: 47

Answers (1)

Rick
Rick

Reputation: 21

thanks @Lux comments on this thread. here is a solution that worked for me. Note the Ember.computed.alias on the model.

export default DS.Model.extend({
    targetName: DS.attr(),
    targetType: DS.attr(),
    rack: DS.belongsTo('rack', {async: true}),
    rackName: Ember.computed.alias('rack.name'),
});

// this works:
export default Ember.Controller.extend({
    sortedTargets: Ember.computed.sort('model', 'sortDefinition'),
    sortDefinition: ['targetType']
});

// this works too :) :
export default Ember.Controller.extend({
    sortedTargets: Ember.computed.sort('model', 'sortDefinition'),
    sortDefinition: ['rackName']
});

Upvotes: 2

Related Questions