Free and Open source Web Builder Framework. Next generation tool for building templates without coding
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

39 lines
855 B

define(['backbone'],
function (Backbone) {
/**
* @class HtmlGenerator
* */
return Backbone.Model.extend({
/** @inheritdoc */
getId : function(){
return 'html';
},
/** @inheritdoc */
build: function(model){
var coll = model.get('components') || model,
code = '';
coll.each(function(m){
var tag = m.get('tagName'), // Tag name
attr = '', // Attributes string
cln = m.get('components'); // Children
_.each(m.get('attributes'),function(value, prop){
attr += value && prop!='style' ? ' ' + prop + '="' + value + '" ' : '';
});
code += '<'+tag+' id="'+m.cid+'"' + attr + '>' + m.get('content');
if(cln.length)
code += this.build(cln);
code += '</'+tag+'>';
}, this);
return code;
},
});
});