假设你正在创造一个新的记录,而不是更新一个,你可以使用方法add(object, options)
您JsonRest
。
实施例:
require(["dojo/store/JsonRest"], function(JsonRest){
// your store
var store = new JsonRest({
target: "/some/resource"
});
// add an object passing an id
store.add({
foo: "foo"
}, {
id: 1
});
});
更详细的信息可以在JsonRest API和JsonRest guide找到。
编辑:
至于您的评论的要求,如果你想使用dojo/request/xhr
,而不是JsonRest
发送对象,你可以使用下面的例子,基本上是:
快速演示在这里:
https://jsbin.com/mocoxuhotu/edit?html,output
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8" />
<link type="text/css" rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/dojo/1.10.0/dijit/themes/claro/claro.css">
<script data-dojo-config="async: 1" src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"></script>
<script>
require([
"dojo/query",
"dojo/dom-form",
"dojo/request/xhr",
"dijit/registry",
"dijit/form/Form",
"dojo/parser",
"dojo/domReady!"
], function (
query,
domForm,
xhr,
registry,
Form,
parser
) {
var form = new Form({}, 'myForm');
query("a.myLink").on("click", function() {
var data = domForm.toObject(form.domNode);
xhr.post("/echo/json", {
data: data // data to transfer
}).then(function() {
console.log("Success");
});
});
});
</script>
</head>
<body class="claro">
<form data-dojo-type="dijit/form/Form" id="myForm">
<fieldset>
<ul>
<li>
<label for="name">Name:</label>
<input type="text" name="name" />
</li>
<li>
<label for="firstname">First name:</label>
<input type="text" name="firstname" />
</li>
</ul>
</fieldset>
</form>
<a class="myLink">Submit the form</a>
</body>
</html>
我已经记录列表和点击事件中,我编辑的一个记录的不同值。然后我想通过调用我的弹簧控制器将值保存到数据库中。 – coder247
嗨,我提供的例子只是告诉你如何做到这一点,基本上调用store.add()当你保存你的记录。如果您可以为我的表单提供您的代码的jsfiddle,我可以为您提供有关您的实际实施的更详细的示例。谢谢。 – GibboK
但是不可能在没有创建商店的情况下使用dojo发送表单? – coder247