在Ember中添加新对象时创建和删除记录

时间:2014-11-25 21:43:36

标签: ember.js

我希望能够在我的模型中创建/删除记录,只要我在单张发票中添加或删除项目(交易)

问题是我不知道如何使用我当前的模板

    <tr>
        <td><button {{action add transaction}}>Add</button></td>
        <td><button {{action delete transaction}}>Delete</button></td>
    </tr>  


    <tr>
      <td>{{input type="number" value=quantita}}</td>
      <td>{{view Em.Select prompt="test" contentBinding="controllers.tariffa.content" optionLabelPath="content.name" optionValuePath="content.id" selectionBinding="controllers.tariffa.selectedTariffa" }}</td>
      <td>{{input value=totale}}</td>
      <td>{{view Em.Select prompt="test" contentBinding="controllers.iva.content" optionLabelPath="content.name" optionValuePath="content.value" selectionBinding="controllers.iva.selectedIva" }}</td>
      <td>{{input value=ivamount}}</td>
      <td>{{input value=risultatofinale}}</td>
    </tr>

这些是我将在索引控制器中添加的操作

  actions:{
    add: function(transaction) {
    this.get('store').createRecord('transaction', attrs);
    }
  }


  actions:{
    delete: function(transaction) {
    this.get('store').deleteRecord('transaction', attrs);
    }
  } 

这可以用我的观点实现吗?怎么样?

我已在此处复制了此问题http://jsbin.com/xuzemi/1/edit?html,js,output

1 个答案:

答案 0 :(得分:1)

事件从视图冒泡到控制器,从那里您可以使用store执行任何操作。

要从输入字段中获取值,请使用绑定。

  actions:{
    add: function() {
      var title = this.get('title');
      console.log('title: ' + title);
      var invoice = {title: title}
      this.store.createRecord('invoice', invoice);
      this.set('title', 'zero');
    }
  }

我编辑了你的小提琴,它应该让你走在正确的轨道上:http://jsbin.com/qurupi/1/edit?html,js,console,output