Playframework 如何在游戏中处理!用jsAction框架一个表单帖子?
我和它斗争了一段时间,没有结果。我希望以表单形式输入并提交的数据被呈现为同一页面上表的新行(无需重新加载页面)。我目前拥有的是一个包含多个字段的项目模型, 具有Playframework 如何在游戏中处理!用jsAction框架一个表单帖子?,playframework,sammy.js,Playframework,Sammy.js,我和它斗争了一段时间,没有结果。我希望以表单形式输入并提交的数据被呈现为同一页面上表的新行(无需重新加载页面)。我目前拥有的是一个包含多个字段的项目模型, 具有saveItem操作的控制器: public static void saveItem(@Valid SoldItem item) {... ,当然还有表格: <tr class="itemNew"> <td> <input type="image" id="saveItem" na
saveItem
操作的控制器:
public static void saveItem(@Valid SoldItem item) {...
,当然还有表格:
<tr class="itemNew">
<td>
<input type="image" id="saveItem" name="&{'Save'}" alt="&{'Save'}" height="16" src="/public/images/001_06.png" form="itemsTable"/>
<a href="#/cancelEdits"><image id="cancelEdits" src="/public/images/001_05.png" alt="&{'Cancel'}" title="&{'Cancel'}" height="16"></a>
</td>
<td>
<div class="item">
<input class="itemDesc" type="text" size="30" name="item.item.name" placeholder="&{'item.name'}" />
</div>
<div class="item">
<textarea class="itemDesc" rows="2" cols="30" name="item.item.description" placeholder="&{'item.description'}" ></textarea>
</div>
</td>
jsAction
的文档没有涵盖此类问题,我找不到任何示例,因此请帮助我。我认为这一行是错误的
var action = #{jsAction @Invoices.saveItem(item_def) /};
应该是
var action = #{jsAction @Invoices.saveItem(item) /};
您正在下一行中将
item_def
分配给item
,但该项不存在,因此不会发送或输出任何内容。因此我提出的解决方案是:
this.post('#/saveItem', function (context) {
var items = this.params.toHash();
var action = #{jsAction @Invoices.saveItem() /};
this.send($.post, action(), items)
.then(function(contents) {
this.swap(contents);
});
});
我在地图上找到了一些解释。当从表单发布时,不需要创建完整的查询URL。所有参数都应作为post正文发送。上面的例子显示了框架(内部)的使用,它工作得很好。这里的
项是什么?我还没有定义这样的变量。action({item:item_def})
表示,将变量item_def
放入变量item
,并且item
是控制器中变量的名称。
var action = #{jsAction @Invoices.saveItem(item) /};
this.post('#/saveItem', function (context) {
var items = this.params.toHash();
var action = #{jsAction @Invoices.saveItem() /};
this.send($.post, action(), items)
.then(function(contents) {
this.swap(contents);
});
});