从组件发送操作到路由

时间:2016-02-11 13:35:53

标签: javascript jquery ember.js

我正在尝试从我的组件(accordion-list)向路径发送动作(similation)。在我的组件中,我们有一个带有输入和按钮的表单,该组件位于模拟模板中:

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>

app/components/accordion-list.js中,我必须定义一个动作,将其发送到路线:

import Ember from 'ember';

export default Ember.Component.extend({

  actions: {
    save: function() {
      this.sendAction('action');
    }
  }
});

在这里我的路线,我也创建了相同的动作来保存我的模拟名称:

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();
        }
    }
});

当我点击我的按钮时,应用程序会向我发送一条这样的恐怖消息:

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', []);
    }

});

我的代码有什么问题,我已经尝试了所有可能性,但它永远不会有效。我需要帮助。

0 个答案:

没有答案