<html>
|
<head>
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
<title>The source code</title>
|
<link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
|
<script type="text/javascript" src="../resources/prettify/prettify.js"></script>
|
</head>
|
<body onload="prettyPrint();">
|
<pre class="prettyprint lang-js"><div id="cls-Ext.data.JsonWriter"></div>/**
|
* @class Ext.data.JsonWriter
|
* @extends Ext.data.DataWriter
|
* DataWriter extension for writing an array or single {@link Ext.data.Record} object(s) in preparation for executing a remote CRUD action.
|
*/
|
Ext.data.JsonWriter = function(config) {
|
Ext.data.JsonWriter.superclass.constructor.call(this, config);
|
|
// careful to respect "returnJson", renamed to "encode"
|
// TODO: remove after Ext-3.0.1 release
|
if (this.returnJson != undefined) {
|
this.encode = this.returnJson;
|
}
|
}
|
Ext.extend(Ext.data.JsonWriter, Ext.data.DataWriter, {
|
<div id="cfg-Ext.data.JsonWriter-returnJson"></div>/**
|
* @cfg {Boolean} returnJson <b>Deprecated, will be removed in Ext-3.0.1</b>. Use {@link Ext.data.JsonWriter#encode} instead.
|
*/
|
returnJson : undefined,
|
<div id="cfg-Ext.data.JsonWriter-encode"></div>/**
|
* @cfg {Boolean} encode <tt>true</tt> to {@link Ext.util.JSON#encode encode} the
|
* {@link Ext.data.DataWriter#toHash hashed data}. Defaults to <tt>true</tt>. When using
|
* {@link Ext.data.DirectProxy}, set this to <tt>false</tt> since Ext.Direct.JsonProvider will perform
|
* its own json-encoding. In addition, if you're using {@link Ext.data.HttpProxy}, setting to <tt>false</tt>
|
* will cause HttpProxy to transmit data using the <b>jsonData</b> configuration-params of {@link Ext.Ajax#request}
|
* instead of <b>params</b>. When using a {@link Ext.data.Store#restful} Store, some serverside frameworks are
|
* tuned to expect data through the jsonData mechanism. In those cases, one will want to set <b>encode: <tt>false</tt></b>, as in
|
* let the lower-level connection object (eg: Ext.Ajax) do the encoding.
|
*/
|
encode : true,
|
|
<div id="method-Ext.data.JsonWriter-render"></div>/**
|
* Final action of a write event. Apply the written data-object to params.
|
* @param {Object} http params-object to write-to.
|
* @param {Object} baseParams as defined by {@link Ext.data.Store#baseParams}. The baseParms must be encoded by the extending class, eg: {@link Ext.data.JsonWriter}, {@link Ext.data.XmlWriter}.
|
* @param {Object/Object[]} data Data-object representing compiled Store-recordset.
|
*/
|
render : function(params, baseParams, data) {
|
if (this.encode === true) {
|
// Encode here now.
|
Ext.apply(params, baseParams);
|
params[this.meta.root] = Ext.encode(data);
|
} else {
|
// defer encoding for some other layer, probably in {@link Ext.Ajax#request}. Place everything into "jsonData" key.
|
var jdata = Ext.apply({}, baseParams);
|
jdata[this.meta.root] = data;
|
params.jsonData = jdata;
|
}
|
},
|
<div id="method-Ext.data.JsonWriter-createRecord"></div>/**
|
* Implements abstract Ext.data.DataWriter#createRecord
|
* @protected
|
* @param {Ext.data.Record} rec
|
* @return {Object}
|
*/
|
createRecord : function(rec) {
|
return this.toHash(rec);
|
},
|
<div id="method-Ext.data.JsonWriter-updateRecord"></div>/**
|
* Implements abstract Ext.data.DataWriter#updateRecord
|
* @protected
|
* @param {Ext.data.Record} rec
|
* @return {Object}
|
*/
|
updateRecord : function(rec) {
|
return this.toHash(rec);
|
|
},
|
<div id="method-Ext.data.JsonWriter-destroyRecord"></div>/**
|
* Implements abstract Ext.data.DataWriter#destroyRecord
|
* @protected
|
* @param {Ext.data.Record} rec
|
* @return {Object}
|
*/
|
destroyRecord : function(rec) {
|
return rec.id;
|
}
|
});</pre>
|
</body>
|
</html>
|