Sha256: d28504c6000c37d4264748755e520411bc960c297c3f4d7ec0fbf06e4ddeb127
Contents?: true
Size: 1.71 KB
Versions: 2
Compression:
Stored size: 1.71 KB
Contents
// ======================================================================== // SproutCore // copyright 2006-2007 Sprout Systems, Inc. // ======================================================================== require('Core') ; // This object can generate HTML DOM elements from a hash-based description of // the nodes. See the NodeDescriptor wiki page for complete docs. // // See https://wiki.sproutit.com/engineering/show/NodeDescriptor // SC.NodeDescriptor = { create: function(descriptor, opts) { if (!opts) opts = {} ; // collect info from descriptor var tag = opts.tag || descriptor.tag || 'div' ; var className = opts.cssClass || descriptor.cssClass ; var elementId = opts.id || descriptor.id ; var style = opts.style || descriptor.style ; var innerHTML = opts.innerHTML || descriptor.innerHTML ; if (!innerHTML) { var childNodes = opts.childNodes || descriptor.childNodes ; } // create element var ret = $(document.createElement(tag)) ; if (className) ret.className = className ; if (elementId) ret.id = elementId ; if (style) { for (var name in style) element.style[name.camelize()] = style[name]; } // apply extra attributes for(var attr in descriptor) { if (this.ignoredProperties.indexOf(attr) == -1) { ret.setAttribute(attr,descriptor[attr]) ; } } // build child nodes, if they exist. if (innerHTML) { ret.innerHTML = innerHTML ; } else if (childNodes) { var that = this ; childNodes.each(function(desc) { ret.appendChild(that.create(desc)) ; }) ; } return ret ; }, ignoredProperties: ['tag','cssClass','id','style','childNodes','innerHTML'] }
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
sproutcore-0.9.1 | frameworks/sproutcore/foundation/node_descriptor.js |
sproutcore-0.9.0 | frameworks/sproutcore/foundation/node_descriptor.js |