2010-05-11 03:24:20 +00:00
|
|
|
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-08-11 19:04:02 +00:00
|
|
|
angularFormatter.noop = formatter(identity, identity);
|
|
|
|
|
angularFormatter.json = formatter(toJson, fromJson);
|
|
|
|
|
angularFormatter['boolean'] = formatter(toString, toBoolean);
|
|
|
|
|
angularFormatter.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
|
|
|
|
2010-08-11 19:04:02 +00:00
|
|
|
angularFormatter.list = formatter(
|
|
|
|
|
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-02-04 21:27:56 +00:00
|
|
|
|
2010-08-11 19:04:02 +00:00
|
|
|
angularFormatter.trim = formatter(
|
|
|
|
|
function(obj) { return obj ? trim("" + obj) : ""; }
|
|
|
|
|
);
|