내 구성 요소입니다. 작동하지만 Ember Data Store에 액세스하지 않고 레코드를 직접 저장하지 않도록 수정해야합니다. 일단 내가 진정한 구성 요소를 가지고이 게시물을 업데이 트 계획이다.
App.HandsOnComponent = Ember.Component.extend({
tagName: 'div',
classNames: ['dataTable'],
//create a unique Div ID for each chart
tableDivID: function() {
var rand = String(Math.random());
var randMod = rand.split('.').join("");
return 'table' + randMod + 'div';
}.property(),
//Insert the Handsontable
insertTable: function(){
var chapter = this.get('chapter');
var statData = this.get('chapter.statData');
var divID = this.get('tableDivID');
var divIDSelector = '#' + divID;
var divElement = jQuery(divIDSelector);
var _this = this;
if (typeof(chapter.get('statData')) == 'undefined') {
chapter.set('statData', [
[0, 0],
]);
chapter.save();
}
//Constructor for the Handsontable
divElement.handsontable({
startRows: 2,
data: statData,
stretchH: 'last',
fixedRowsTop: 0,
colHeaders: ['Date', 'Value'],
cells: function (row, col, prop) {
var cellProperties = {};
var RowRenderer = function(instance, td, row, col, prop, value, cellProperties) {
Handsontable.renderers.TextRenderer.apply(this, arguments);
td.style.fontWeight = 'normal';
td.style.color = '#FFFFFF';
td.style.background = 'rgba(255, 255, 255, 0.3)';
//td.style.border-color = '#FFFFFF';
};
return cellProperties;
},
columns: [
{
//column options for the first column
type: 'date',
dateFormat: 'yy/mm/dd',
allowInvalid : false,
},
{
type: 'numeric',
Format: '0,0.00',
allowInvalid : false,
},
],
minSpareRows: 1,
afterChange: function (change, source) {
if (source === 'loadData') {
return; //don't save this change
}
var htInstance = $(divIDSelector).handsontable('getInstance');
//var statData = chapter.get('statData');
var statData = htInstance.getData();
chapter.set('statData', statData);
chapter.save();
},
});
}.on('didInsertElement'),
actions: {
saveStatVals: function() {
var store = this.get('storeName');
var chapter = store.getById('chapter', chapterId);
var handsontable = $('.dataTable').handsontable('getInstance');
var dataTable = handsontable.getData();
var _chapter = this.get('controllers.chapter');
var _chapterId = _chapter.get('id');
var chapter = this.store.getById('chapter', _chapterId);
chapter.get('cont').pushObject(dataTable);
chapter.save();
},
},
});