我有一个拖放我的应用程序中涉及的拖放布局组件。在用户按下保存时,我想在控制器中获取组件值并存储它们。 (我使用Ember CLI)并且不知道如何将组件数据输入控制器。看过像需要的东西吗?
控制器应用程序:
save: function(){
var newName= this.store.createRecord('layout', {
title: this.get('title')
});
newName.save();
alert('saved');
this.transitionToRoute('index');
}
组件:
Setupgridster: function(){
Ember.$(".gridster ul").gridster({
widget_base_dimensions: [359, 232],
widget_margins: [5, 5],
helper: 'clone',
resize: {
enabled: true,
max_size: [3, 3],
min_size: [1, 1],
stop: function (e, ui, $widget) {
var widget_base_dimensions = this.serialize($widget)[0];
}
},
serialize_params: function($w, wgd) {
return {
col: wgd.col,
row: wgd.row,
size_x: wgd.size_x,
size_y: wgd.size_y
};
}
}).data('gridster');
}.on("didInsertElement")
});
答案 0 :(得分:0)
您应该使用组件的JavaScript(位于ApplicationController
,如果您使用的是Ember-CLI)来实现保存,而不是使用app/components/your-component.js
。这样,组件的功能将由组件本身封装。
// app/components/your-component.js
export default Ember.Component.extend({
actions: {
showConfirmation: function() {
var store = this.get('store');
var newName = store.createRecord('layout', {
title: this.get('title')
});
newName.save().then(function(newTaskSaved){
alert('saved');
});
this.transitionToRoute('index');
}
}
});
在模板中,您可以传递标题和数据存储:
{{your-component title=title store=store}}