如何在Ember中使用模型在页面之间传送一些数据?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Ember中使用模型在页面之间传送一些数据?相关的知识,希望对你有一定的参考价值。

我试图通过更新(添加)现有模型的一些属性来携带一些数据。但它没有传到下一页。所以我试着这样:

combineArray:Ember.computed(function(){

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

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

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

            card.get('cardtransactions').map(function(transaction){

                console.log( 'transaction', JSON.stringify(transaction) )

                let temp = {};
                temp = JSON.parse(JSON.stringify(  transaction ));
                temp.cardName = name;
                temp.cardNum = numb;
                temp.selected = false;
                temp.handlingFee = that.setHandlingFee( transaction.get('localCurrencyAmount') );
                trans.push( Ember.Object.create().setProperties(temp) );

            })

        });

        this.model.set('processedTrans', trans  );

        console.log( this.model.get('processedTrans').get('firstObject'));

        return this.model.get('processedTrans');

    }),

使用上述方法我发现,有些数据缺失了。那么在页面之间传送一些数据的正确方法是什么?

使用服务不为我设置。因为我没有页面。我希望更新具有所需数据的模型。

答案

我建议你开始考虑route而不是页面。 Ember Routes是一个层次结构,因此您将拥有父路线和子路线。

例如,请考虑路由器配置中的以下内容:

this.route('post', {
    path: '/post/:post_id'
  }, function() {
  this.route('edit');
});

在这种情况下,有一个父母(post)和一个孩子(post.edit)。

在您的post路线中,您将拥有:

export default Route.extend({
  model(params) {
    return this.store.findRecord('post', params.post_id);
  }
});

对于post.edit的路线,您将拥有:

export default Route.extend({
  model(params) {
    return this.modelFor('post');
  }
});

所以在这里,孩子和父母使用相同的模型。如果您的子路径中需要其他内容,则可以在模型挂钩中执行此操作(同样,这是子路由):

export default Route.extend({
  model(params) {
    let post= this.modelFor('post');
    return post.get('someOtherProperty');
  }
});

在这种情况下,子模型将是父模型的someOtherProperty属性的值。

希望这可以帮助您以不同的方式思考您的问题。

以上是关于如何在Ember中使用模型在页面之间传送一些数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Ember.js 中保存具有“日期”类型属性的模型?

Ember:访问模板中的侧载模型关系数据

如何在加载模型时在Ember中显示加载模板?

没有 Ember 数据的 Ember

如何在一个视图中使用多个 ember 数据模型

在将查询响应分配给模型字段时丢失大量的ember-data类属性