2016-10-22 128 views
2

我有一个后端服务用WebApi编写,前端用AngularJS编写。从后端我回来的DateTime如下将WebApi的返回日期时间转换为Javascript的日期

public async Task<DateTime> GetDateTime(Guid id) 
{ 
    DateTime dateTime = GetDateTime(); 
    return dateTime; 
} 

内部角控制器我收到响应这样

service.getDateTime({ 
    id: $scope.id 
}, 
function(data) { 
    $scope.minSelectedScheduleDate = new Date(data); 
    $scope.isBusy = false; 
}, 
function(response) { 
    $scope.isBusy = false; 
}); 

minSelectedScheduleDate失效日期。

当我想看看数据到控制台,我看到这样的事情:

Resource { 
    0: "2", 
    1: "0", 
    2: "1", 
    3: "6", 
    4: "-", 
    5: "1", 
    6: "0", 
    7: "-", 
    8: "2", 
    9: "8", 
    10: "T", 
    11: "1", 
    12: "1", 
    13: ":", 
    14: "3", 
    15: "0", 
    16: ":", 
    17: "0", 
    18: "0" 
} 

我的问题是,我怎么能接受角控制器的有效日期?

回答

0

问题是我直接返回DateTime对象。如果我从我的控制器返回一个匿名对象,那么JavaScript反序列化everythik罚款。这里是我的控制器:

public async Task<DateTime> GetDateTime(Guid id) 
{ 
    DateTime dateTime = GetDateTime(); 
    return mew 
    { 
     ScheduleDate = dateTime 
    }; 
} 
1

您应该从您的web api获取ISO8601格式的字符串的日期。要将字符串转换为日期,需要在日期调用parse方法。

$scope.minSelectedScheduleDate = Date.parse(data); 
+0

对不起,这是行不通的。它说'$ scope.minSelectedScheduleDate'是'NaN' –

+0

@EmdadulSawon - 你是否在等待'GetDateTime'动作中的所有任务?你可以分享'service.getDateTime'的角度服务代码吗? – Igor

0

我想你日期字符串对象形式回应,所以试试这个

function(data) { 
    var dateString=""; 
    for(var prop in data) 
     dateString+=data[prop]; 
    $scope.minSelectedScheduleDate=new Date(dateString); 
} 
+0

嗨,我试过了,但没有工作。 :( –

相关问题