Tin*_*ino 15 javascript date angularjs
我正在使用$ resource来操纵我的数据.我想把它们转换成日期对象时将它们转换成日期对象.它只是使用datepicker等更容易.
我的工厂:
AppFactories.factory("Books", ['$resource' ,function($resource){
return $resource(
"/books/:id",
{id: "@id" },
{
"update": {method: "PUT", isArray: true },
"save": {method: "POST", isArray: true },
}
);
}]);
Run Code Online (Sandbox Code Playgroud)
我可以在工厂内创建一个函数,以便在发布/更新时将日期从数据库转换为日期对象,反之亦然?
将它集成到工厂是非常好的,这样我就可以重复使用它.
djs*_*ner 12
相反,在每一个资源这样做的是更详细的描述,你可以把它应用到底层$ HTTP 这里.
app.config(["$httpProvider", function ($httpProvider) {
$httpProvider.defaults.transformResponse.push(function(responseData){
convertDateStringsToDates(responseData);
return responseData;
});
}]);
Run Code Online (Sandbox Code Playgroud)
jak*_*kee 10
该$resource
动作对象可以有一个名为属性interceptor
,它允许你定义一个interceptor
用于这个特殊的操作对象(像$ HTTP拦截).您可以为此拦截器定义response
和responseError
属性.这样,您可以为资源提供的操作定义一些日期解析功能:
function parseResponseDates(response) {
var data = response.data, key, value;
for (key in data) {
if (!data.hasOwnProperty(key) && // don't parse prototype or non-string props
toString.call(data[key]) !== '[object String]') continue;
value = Date.parse(data[key]); // try to parse to date
if (value !== NaN) data[key] = value;
}
return response;
}
return $resource('/books/:id', {id: '@id'},
{
'update': {
method: 'PUT',
isArray: true,
interceptor: {response: parseResponseDates}
},
....
}
);
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助!
归档时间: |
|
查看次数: |
7518 次 |
最近记录: |