Javascript 将操作从组件发送到路由
我正在尝试从我的组件(手风琴列表)向路由(模拟)发送操作。在我的组件中,我们有一个带有输入和按钮的表单,该组件位于模拟模板中:Javascript 将操作从组件发送到路由,javascript,jquery,ember.js,Javascript,Jquery,Ember.js,我正在尝试从我的组件(手风琴列表)向路由(模拟)发送操作。在我的组件中,我们有一个带有输入和按钮的表单,该组件位于模拟模板中: templates/simulation.hbs {{accordion-list simu=model action="save"}} 在我的组件中 templates/components/accordion-list.hbs <form class="form-horizontal" {{action "save" on="submit"}}>
templates/simulation.hbs
{{accordion-list simu=model action="save"}}
在我的组件中
templates/components/accordion-list.hbs
<form class="form-horizontal" {{action "save" on="submit"}}>
{{input value=model.name type="text"}}
<button type="submit" class="btn btn-default">Simulation</button>
</form>
这里是我的路线,我也创建了同样的动作来保存我的模拟的名称:
routes/simulation.js
import Ember from 'ember';
export default Ember.Route.extend({
actions: {
save: function() {
//Create New Simulation
var newSimu = this.store.createRecord('simu', {
name: this.get('model.name')
});
newSimu.save();
}
}
});
当我单击我的按钮时,应用程序会向我发送一条arror消息,如下所示:
Uncaught TypeError: adapter[operation] is not a function
我使用适配器在localstorage中保存表单:
adapters/simulations.js
import ApplicationAdapter from './application';
export default ApplicationAdapter.extend({
createRecord: function() {
this.localStorage.set('simu', []);
}
});
我的代码有什么问题,我已经尝试了所有的可能性,但它从来都不起作用。我需要帮助。是否定义了本地存储?应用程序适配器的外观如何?它不应该是
adapters/simluation
而不是simulations
?不,我没有定义本地存储。我如何定义它?我的ApplicationAdapter是这样的:导出默认的DS.Adapter.extend({});它是window.localStorage。
adapters/simulations.js
import ApplicationAdapter from './application';
export default ApplicationAdapter.extend({
createRecord: function() {
this.localStorage.set('simu', []);
}
});