2014-11-17 54 views
0

我試圖將Ember-Data Model實例轉換爲數組,並將其加載到Handsontable(http://handsontable.com)中。 toArray()方法似乎不會將StatVals模型的屬性轉換爲數組,而是創建一個StatVals對象數組。如何從Ember-Data模型屬性正確構造數組?將Ember-Data模型轉換爲陣列

此外,我希望新陣列包含timeelement而不是statVal模型的其他屬性。我應該如何處理這個問題?

是構建Handsontable觀:

App.chapterView = Ember.View.extend({ 
    tagName: 'div', 
    classNames: ['dataTable'], 
    insertTable: function(){ 
    var divElement = jQuery('.dataTable'); 
    var data = this.get('controller.model.statVals').toArray(); 
    divElement.handsontable({ data: data }); 
    }.on('didInsertElement') 
}); 

型號:

App.Chapter = DS.Model.extend({ 
    name: DS.attr('string'), 
    createdDate: DS.attr('date'), 
    statVals: DS.hasMany('statVal', { inverse: 'chapter', async: true}), 
    user: DS.belongsTo('user', { inverse: 'chapter', async: true}) 
}); 


App.StatVal = DS.Model.extend({ 
    time: DS.attr('date'), 
    Element: DS.attr('number'), 
    Chapter: DS.belongsTo('chapter'), 
    user: DS.belongsTo('user', { inverse: 'statVals', async: true}) 
}); 

我發現下面的相關問題,但我不相信他們目前最好的辦法,以我的情況:

ember-data as data for d3

What is the Ember way of converting retrieved Ember Data records into plain objects?

回答

1

簡單地刪除var data = this.get('controller.model.statVals').toArray();中的statVals使我能夠用來自Ember-Data的數據提供Handsontable表。完整的查看代碼是:

App.chapterView = Ember.View.extend({ 
     tagName: 'div', 
     classNames: ['dataTable'], 
     insertTable: function(){ 
     var divElement = jQuery('.dataTable'); 
     var data = this.get('controller.model').toArray(); 
     divElement.handsontable({ data: data }); 
     }.on('didInsertElement') 
    });