angular.js/src/formatters.js

33 lines
877 B
JavaScript
Raw Normal View History

function formatter(format, parse) {return {'format':format, 'parse':parse || format};}
function toString(obj) {return (isDefined(obj) && obj !== null) ? "" + obj : obj;}
var NUMBER = /^\s*[-+]?\d*(\.\d*)?\s*$/;
2010-01-29 06:10:49 +00:00
extend(angularFormatter, {
'noop':formatter(identity, identity),
'boolean':formatter(toString, toBoolean),
'number':formatter(toString,
function(obj){
if (isString(obj) && NUMBER.exec(obj)) {
return obj ? 1*obj : null;
}
throw "Not a number";
}),
2010-01-29 06:10:49 +00:00
'list':formatter(
2010-01-29 06:10:49 +00:00
function(obj) { return obj ? obj.join(", ") : obj; },
function(value) {
var list = [];
foreach((value || '').split(','), function(item){
item = trim(item);
if (item) list.push(item);
});
return list;
2010-01-29 06:10:49 +00:00
}
),
'trim':formatter(
function(obj) { return obj ? trim("" + obj) : ""; }
)
2010-01-29 06:10:49 +00:00
});