clone: function() {
var clone = this._$.clone(true, true);
+ clone.find('*').addBack().each(function() {
+ var clonedData = $(this).data();
+ _.pairs(clonedData).forEach(function(pair) {
+ var key = pair[0],
+ value = pair[1];
+ if(_.isFunction(value.clone)) {
+ clonedData[key] = value.clone();
+ }
+ });
+ });
return this.document.createDocumentNode(clone[0]);
},
var parseXML = function(xml) {
- return $($.trim(xml))[0];
+ var toret = $($.trim(xml));
+ if(!toret.length) {
+ throw new Error('Unable to parse XML: ' + xml);
+ }
+ return toret[0];
+
};
var registerTransformation = function(desc, name, target) {