【问题标题】:Convert Emberjs recordArray model to JSON将 Emberjs recordArray 模型转换为 JSON
【发布时间】:2015-02-28 15:11:58
【问题描述】:

免责声明:我是 Ember 的新手。

话虽如此,我正在尝试将 Ember recordArray 转换为 JSON 字符串,以便将其发送到我的服务器进行处理。

我有以下 Ember 模型:

Loads.Load = DS.Model.extend({
    pickupStartTime: DS.attr('string'),
    pickupEndTime: DS.attr('string'),
    pickupLocation: DS.attr('string'),
    pickupGeocode: DS.attr('string'),
    pickupWeight: DS.attr('number'),
    pickupTicket: DS.attr('string'),
    dropoffStartTime: DS.attr('string'),
    dropoffEndTime: DS.attr('string'),
    dropoffLocation: DS.attr('string'),
    dropoffGeocode: DS.attr('string'),
    dropoffWeight: DS.attr('number'),
    dropoffTicket: DS.attr('string'),
    commodity: DS.attr('string'),
    isCompleted: DS.attr('boolean'),
    shortPickupStartTime: function(){
        var time = this.get('pickupStartTime');
        if(time){
            var split = time.split(" ");
            return split[4];    
        }else{
            return " ";
        }
    }.property('pickupStartTime'),
    shortPickupEndTime: function(){
        var time = this.get('pickupEndTime');
        if(time){
            var split = time.split(" ");
            return split[4];    
        }else{
            return " ";
        }
    }.property('pickupEndTime'),
    shortDropoffStartTime:function(){
        var time = this.get('dropoffStartTime');
        if(time){
            var split = time.split(" ");
            return split[4];    
        }else{
            return " ";
        }
    }.property('dropoffStartTime'),
    shortDropoffEndTime: function(){
        var time = this.get('dropoffEndTime');
        if(time){
            var split = time.split(" ");
            return split[4];    
        }else{
            return " ";
        }
    }.property('dropoffEndTime')
});

我的控制器中有以下操作:

var self = this;

Ember.RSVP.hash({
   //loads is an array of records
   loads: this.store.find('load')
}).then(function (data) {      
   $.ajax({
       type: "POST",
       data: { Loads: JSON.stringify(data.loads) },
       url: "api/buildexcelsheet",
       contentType: "application/json",
       success: function (message) {
           self.set('uri', message);
       }
   });
});

当我从控制器运行此操作时,我收到以下错误:

Uncaught Error: Assertion Failed: TypeError: Converting circular structure to JSON

由于我是 Ember 的新手,我不确定自己做错了什么。

任何帮助将不胜感激。

谢谢!

【问题讨论】:

    标签: json ember.js ember-data


    【解决方案1】:

    我最终自己解决了:

    loads: store.find('load').then(function (units) {
        return units.map(function (x) { return x.toJSON(); })
    });
    

    成功了!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-10
      • 2019-11-15
      • 2014-06-30
      • 1970-01-01
      相关资源
      最近更新 更多