无法在 `afterModel` 中更新模型

Not able to update the model in `afterModel`

在现有模型中,我试图在 afterModel 挂钩中添加一些值。但我根本没有在模型中找到。如何做到这一点?

这是我的尝试:

afterModel:function(model,transition){

        var that = this;
        let trans = Ember.A();

        model.get('ccList').forEach(function(card,num){

            let cname = card.get('cardName');
            let numb = card.get('cardNum');

            card.get('cardtransactions').map(function(transaction){
//adding some values
                transaction.set('cardName', cname );
                transaction.set('cardNum', numb );
                transaction.set('selected', false );
                transaction.set('handlingFee', "" );

                trans.push( transaction );

            });
        });

        model.set('processedTrans',trans); //assigning back 

        console.log( JSON.stringify( model.get('processedTrans').get('firstObject'))); //but not getting here

    },

从路由的模型挂钩返回的 model 对象通常是原始对象,.get().set() 将引发错误。如评论中所述,安全选项是使用 Ember.get()Ember.set(),因为它们将同时支持基本对象和 Ember 对象。

/* Ember.get(model, key) provides a safe fallback if .get() is not available */
console.log(Ember.get(model, 'transactions'));

/* model.get(key) will throw an error */
console.log(model.get('transactions'));

此外,使用 Ember.assign(model, { transactions, ...otherObjects }) 可以帮助简化在 afterModelsetupController 挂钩中修改模型。

这是一个粗略的 EmberTwiddle 来说明:Modifying the Model in the AfterModel Hook