X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/6e39d509471fe9b4e2660e0d1631b350d0c66f40..7a654f8d43fdb43d78b63d90528bed6e86b608cc:/docs/api/Ext.Object.html diff --git a/docs/api/Ext.Object.html b/docs/api/Ext.Object.html new file mode 100644 index 00000000..2995c854 --- /dev/null +++ b/docs/api/Ext.Object.html @@ -0,0 +1,292 @@ +
A collection of useful static methods to deal with objects
+Iterate through an object and invoke the given callback function for each iteration. The iteration can be stop
+by returning false
in the callback function. For example:
var person = {
+ name: 'Jacky'
+ hairColor: 'black'
+ loves: ['food', 'sleeping', 'wife']
+};
+
+Ext.Object.each(person, function(key, value, myself) {
+ console.log(key + ":" + value);
+
+ if (key === 'hairColor') {
+ return false; // stop the iteration
+ }
+});
+
+The object to iterate
+The callback function. Passed arguments for each iteration are:
+ +key
value
object
The object itself(Optional) The execution scope (this
) of the callback function
Converts a query string back into an object.
+ +Non-recursive:
+ +Ext.Object.fromQueryString(foo=1&bar=2); // returns {foo: 1, bar: 2} + Ext.Object.fromQueryString(foo=&bar=2); // returns {foo: null, bar: 2} + Ext.Object.fromQueryString(some%20price=%24300); // returns {'some price': '$300'} + Ext.Object.fromQueryString(colors=red&colors=green&colors=blue); // returns {colors: ['red', 'green', 'blue']}
Recursive:
+ +Ext.Object.fromQueryString("username=Jacky&dateOfBirth[day]=1&dateOfBirth[month]=2&dateOfBirth[year]=1911&hobbies[0]=coding&hobbies[1]=eating&hobbies[2]=sleeping&hobbies[3][0]=nested&hobbies[3][1]=stuff", true);
+ +// returns + {
+ + username: 'Jacky',
+ dateOfBirth: {
+ day: '1',
+ month: '2',
+ year: '1911'
+ },
+ hobbies: ['coding', 'eating', 'sleeping', ['nested', 'stuff']]
+
+
+}
The query string to decode
+(Optional) Whether or not to recursively decode the string. This format is supported by +PHP / Ruby on Rails servers and similar. Defaults to false
+Returns the first matching key corresponding to the given value. +If no matching value is found, null is returned.
+ +var person = {
+ name: 'Jacky',
+ loves: 'food'
+};
+
+alert(Ext.Object.getKey(sencha, 'loves')); // alerts 'food'
+
+The value to find
+Gets the total number of this object's own properties
+ +var size = Ext.Object.getSize({
+ name: 'Jacky',
+ loves: 'food'
+}); // size equals 2
+
+size
+Gets all values of the given object as an array.
+ +var values = Ext.Object.getValues({
+ name: 'Jacky',
+ loves: 'food'
+}); // ['Jacky', 'food']
+
+An array of values from the object
+Merges any number of objects recursively without referencing them or their children.
+ +var extjs = {
+ companyName: 'Ext JS',
+ products: ['Ext JS', 'Ext GWT', 'Ext Designer'],
+ isSuperCool: true
+ office: {
+ size: 2000,
+ location: 'Palo Alto',
+ isFun: true
+ }
+};
+
+var newStuff = {
+ companyName: 'Sencha Inc.',
+ products: ['Ext JS', 'Ext GWT', 'Ext Designer', 'Sencha Touch', 'Sencha Animator'],
+ office: {
+ size: 40000,
+ location: 'Redwood City'
+ }
+};
+
+var sencha = Ext.Object.merge(extjs, newStuff);
+
+// extjs and sencha then equals to
+{
+ companyName: 'Sencha Inc.',
+ products: ['Ext JS', 'Ext GWT', 'Ext Designer', 'Sencha Touch', 'Sencha Animator'],
+ isSuperCool: true
+ office: {
+ size: 30000,
+ location: 'Redwood City'
+ isFun: true
+ }
+}
+
+,...
+merged The object that is created as a result of merging all the objects passed in.
+Convert a name
- value
pair to an array of objects with support for nested structures; useful to construct
+query strings. For example:
var objects = Ext.Object.toQueryObjects('hobbies', ['reading', 'cooking', 'swimming']);
+
+// objects then equals:
+[
+ { name: 'hobbies', value: 'reading' },
+ { name: 'hobbies', value: 'cooking' },
+ { name: 'hobbies', value: 'swimming' },
+];
+
+var objects = Ext.Object.toQueryObjects('dateOfBirth', {
+ day: 3,
+ month: 8,
+ year: 1987,
+ extra: {
+ hour: 4
+ minute: 30
+ }
+}, true); // Recursive
+
+// objects then equals:
+[
+ { name: 'dateOfBirth[day]', value: 3 },
+ { name: 'dateOfBirth[month]', value: 8 },
+ { name: 'dateOfBirth[year]', value: 1987 },
+ { name: 'dateOfBirth[extra][hour]', value: 4 },
+ { name: 'dateOfBirth[extra][minute]', value: 30 },
+];
+
+Takes an object and converts it to an encoded query string
+ +Non-recursive:
+ +Ext.Object.toQueryString({foo: 1, bar: 2}); // returns "foo=1&bar=2" + Ext.Object.toQueryString({foo: null, bar: 2}); // returns "foo=&bar=2" + Ext.Object.toQueryString({'some price': '$300'}); // returns "some%20price=%24300" + Ext.Object.toQueryString({date: new Date(2011, 0, 1)}); // returns "date=%222011-01-01T00%3A00%3A00%22" + Ext.Object.toQueryString({colors: ['red', 'green', 'blue']}); // returns "colors=red&colors=green&colors=blue"
Recursive:
+ +Ext.Object.toQueryString({
+ + username: 'Jacky',
+ dateOfBirth: {
+ day: 1,
+ month: 2,
+ year: 1911
+ },
+ hobbies: ['coding', 'eating', 'sleeping', ['nested', 'stuff']]
+
+
+ }, true); // returns the following string (broken down and url-decoded for ease of reading purpose):
+
+ // username=Jacky
+ // &dateOfBirth[day]=1&dateOfBirth[month]=2&dateOfBirth[year]=1911
+ // &hobbies[0]=coding&hobbies[1]=eating&hobbies[2]=sleeping&hobbies[3][0]=nested&hobbies[3][1]=stuff
+
The object to encode
+(optional) Whether or not to interpret the object in recursive format. +(PHP / Ruby on Rails servers and similar). Defaults to false
+queryString
+