12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- <!DOCTYPE html>
- <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>
- <style type="text/css">
- .highlight { display: block; background-color: #ddd; }
- </style>
- <script type="text/javascript">
- function highlight() {
- document.getElementById(location.hash.replace(/#/, "")).className = "highlight";
- }
- </script>
- </head>
- <body onload="prettyPrint(); highlight();">
- <pre class="prettyprint lang-js"><span id='Ext-data-reader-Array-method-constructor'><span id='Ext-data-reader-Array'>/**
- </span></span> * @author Ed Spencer
- * @class Ext.data.reader.Array
- *
- * <p>Data reader class to create an Array of {@link Ext.data.Model} objects from an Array.
- * Each element of that Array represents a row of data fields. The
- * fields are pulled into a Record object using as a subscript, the <code>mapping</code> property
- * of the field definition if it exists, or the field's ordinal position in the definition.</p>
- *
- * <p><u>Example code:</u></p>
- *
- <pre><code>
- Employee = Ext.define('Employee', {
- extend: 'Ext.data.Model',
- fields: [
- 'id',
- {name: 'name', mapping: 1}, // "mapping" only needed if an "id" field is present which
- {name: 'occupation', mapping: 2} // precludes using the ordinal position as the index.
- ]
- });
- var myReader = new Ext.data.reader.Array({
- model: 'Employee'
- }, Employee);
- </code></pre>
- *
- * <p>This would consume an Array like this:</p>
- *
- <pre><code>
- [ [1, 'Bill', 'Gardener'], [2, 'Ben', 'Horticulturalist'] ]
- </code></pre>
- *
- * @constructor
- * Create a new ArrayReader
- * @param {Object} meta Metadata configuration options.
- */
- Ext.define('Ext.data.reader.Array', {
- extend: 'Ext.data.reader.Json',
- alternateClassName: 'Ext.data.ArrayReader',
- alias : 'reader.array',
- // For Array Reader, methods in the base which use these properties must not see the defaults
- totalProperty: undefined,
- successProperty: undefined,
- <span id='Ext-data-reader-Array-method-createFieldAccessExpression'> /**
- </span> * @private
- * Returns an accessor expression for the passed Field from an Array using either the Field's mapping, or
- * its ordinal position in the fields collsction as the index.
- * This is used by buildExtractors to create optimized on extractor function which converts raw data into model instances.
- */
- createFieldAccessExpression: function(field, fieldVarName, dataName) {
- // In the absence of a mapping property, use the original ordinal position
- // at which the Model inserted the field into its collection.
- var index = (field.mapping == null) ? field.originalIndex : field.mapping,
- result;
- if (typeof index === 'function') {
- result = fieldVarName + '.mapping(' + dataName + ', this)';
- } else {
- if (isNaN(index)) {
- index = '"' + index + '"';
- }
- result = dataName + "[" + index + "]";
- }
- return result;
- }
- });
- </pre>
- </body>
- </html>
|