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