mercredi 13 janvier 2016

Ember issue with setting attribute value

I have an Ember Route class defined as below;

export default Ember.Route.extend({
    model: function() {
        var compObj = {};
        compObj.gridPara = this.get('gridPara');
        return compObj;
    },
    gridPara: function() {
        var self = this;
        var returnObj = {};
        returnObj.url = '/myService';
        // setting some other returnObj attributes
        var summaryObj = {
            total: {
                label: "Total 1",
                value: "100"
            },
            additional: [{
                label: 'Label 2',
                value: 'val2'
            }, {
                label: 'Label 3',
                value: 'val3'
            }]
        };
        returnObj.summary = summaryObj;
        return returnObj;
    },
    actions: {
        dataLoaded: function(resp) {
            // Here I get the service response and want to set (or overwrite) the summaryObj values
            this.get('gridParams').summary.total.value = resp.numRows;          
        }
    }
});

My template looks like

{{my-grid params=this.gridPara dataLoaded="dataLoaded"}}

Now I want to set the "summary" on returnObj I have verified that I get "resp" inside dataLoaded callback.

But I get the following error when trying to do

this.get('gridParams').summary.total.value = resp.numRows;      

Uncaught Error: Assertion Failed: You must use Ember.set() to set the value property (of [object Object]) to 100.

Also how do I set/push for "additional" array inside summaryObj

Aucun commentaire:

Enregistrer un commentaire