vesh-cli
Version:
码农村nodejs版本VESH框架脚手架搭建器
69 lines • 2.92 kB
JavaScript
(function(V, W, $) {
V.registScript(function(path, vm) {
var _ = this,
__ = {}; {
V.inherit.apply(_, [W.Control, [V.getValue(path, '<span class="c_textArea"><span style="display:none;"></span><textarea></textarea></span>'), V.getValue(vm, {
data: { rows: '10', cols: '60' }
})]]);
__.render = _.render;
__.onLoad = _.onLoad;
}
_.onLoad = function(node) {
__.txt = node.find('span:first');
__.input = node.find('textarea:first');
V.forC(_.events, function(k, v) {
switch (k) {
case 'error':
if (_.get().validate) {
_.validate(_, __.input);
}
break;
default:
_.bindEvent(__.input, k, v);
break;
}
}, function() {
__.onLoad(node);
}, true);
};
_.fill = function(node) {
var value = $.trim(__.input.val());
value = (value == _.vm.data.title || value == _.vm.data.error) ? "" : value;
return { text: value, value: value };
};
_.render = function(data) {
V.forC(data, function(key, value) {
switch (key.toLowerCase()) {
case 'rows':
__.input.attr('rows', value);
delete data[key];
break;
case 'cols':
__.input.attr('cols', value);
delete data[key];
break;
case 'text':
case 'value':
if (typeof(value) != 'boolean' && 'false' != ('' + value).toLowerCase() && 'undefined' != ('' + value).toLowerCase()) {
__.input.scrollTop(0)
__.input.val(value);
if (_.vm.data.title && !V.isValid(value)) __.input.val(_.vm.data.title);
} else {
delete _.vm.data.value;
delete _.vm.data.text;
__.input.val('');
}
break;
case 'key':
__.txt.text(value).show();
delete data[key];
break;
case 'enable':
if (value) { __.input.removeAttr('disabled'); } else { __.input.attr('disabled', 'disabled'); }
break;
}
}, function() { __.render(data) });
return data;
};
});
})(VJ, VJ.view, jQuery);