Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js 如何触发提交/保存?_Ember.js_Ember Data - Fatal编程技术网

Ember.js 如何触发提交/保存?

Ember.js 如何触发提交/保存?,ember.js,ember-data,Ember.js,Ember Data,用户可以通过表单字段进行操作。但我不知道如何保存(提交)它们。当我更改用户的lastName并单击“保存”按钮时,会出现以下错误: Uncaught Error: Attempted to handle event `save` on <App.User:ember309:1> while in state rootState.loaded.updated.uncommitted. Called with undefined 您可以像这样更改代码 <script type="

用户可以通过表单字段进行操作。但我不知道如何保存(提交)它们。当我更改
用户的
lastName
并单击“保存”按钮时,会出现以下错误:

Uncaught Error: Attempted to handle event `save` on <App.User:ember309:1> while in state rootState.loaded.updated.uncommitted. Called with undefined

您可以像这样更改代码

<script type="text/x-handlebars" data-template-name="users">
  <table class='table'>
      {{#each model in controller}}
        <tr>
          <td>{{view Ember.TextField valueBinding='lastName'}}</td>
          <td><button {{bindAttr class=":btn isDirty:btn-primary:disabled"}} {{action "save"}}>save</button></td>
        </tr>
      {{/each}}
  </table>
</script>
这将允许您调用
UserController
save
方法

最后,请确保保存您的记录:

App.UserController = Ember.ObjectController.extend({
  save: function() {
    this.get('content.transaction').commit();
  }
})

是不是因为您没有指定要保存的记录<代码>{{action save model}}
。您使用的是哪个版本(提交)的余烬数据?由于我刚刚更新到最新的data ember版本,因此在
DS.Model
上的
save
方法可用。没有区别。我还没有100%理解客户端的MVC结构。我想这是一个非常基本的错误。您是否已经尝试过按照Gabor的建议将
{action“save”target=“model”}
替换为
{action save model}}
(可能还会添加
target=“controller”
)?
{action save model}
转到用户控制器(这是有道理的,但因为我没有在那里保存,所以它不起作用)。我尝试了
{{action save model target=“UserController”}
根本不起作用。我需要一个指向UserController的版本。
<script type="text/x-handlebars" data-template-name="users">
  <table class='table'>
      {{#each model in controller}}
        <tr>
          <td>{{view Ember.TextField valueBinding='lastName'}}</td>
          <td><button {{bindAttr class=":btn isDirty:btn-primary:disabled"}} {{action "save"}}>save</button></td>
        </tr>
      {{/each}}
  </table>
</script>
App.UsersController = Ember.ArrayController.extend({
  itemController: 'user'
});
App.UserController = Ember.ObjectController.extend({
  save: function() {
    this.get('content.transaction').commit();
  }
})