2016-03-07 59 views
1

试图创建一个Date对象(仅限于使用时间)和访问我的功能

任何帮助的之外的价值,将不胜感激。请参见下面的代码或我plunker

var objts = ""; 

    $scope.today = function() { 

     $http.get('time.json').success(function(data, status, headers, config) { 

     objts = new Date(data.time_start); 
     objte = new Date(data.time_end); 

     console.log(data); 
    }).error(function(data, status, headers, config) { 
     console.log("No data found.."); 
    }); 

    $scope.dt = objts; // ---- Trying to use value of objts here ---- 

    }; 
    $scope.today(); 

感谢

+0

你只会得到异步调用响应在其回调.. –

回答

2

执行asynchronouslyget方法。您目前正在将$scope.dt的值设置在get承诺解析功能之外。

您应该设置$scope.dt变量时get承诺的决心:

$scope.dt = null; 

$scope.today = function() { 
    $http.get('time.json').success(function(data) { 
    var objts = new Date(data.time_start); 
    var objte = new Date(data.time_end); 
    $scope.dt = objts; 
    console.log(data); 
    }).error(function(data) { 
    console.log("No data found.."); 
    }); 
}; 
$scope.today(); 

编辑
你的问题实际上来自您创建日期的方式。你应该这样做:

$scope.dt = Date.parse("2016-01-01 " + data.time_start); 

Dates documentation,或moment.jsforked Plnkr

+0

确定这是有道理的,但我得到的当前时间(而不是08:00:00,当我这样做时,我的json中的价值)。我的运动员已更新,以显示我的意思 – user3489502

+0

问题在于您的日期创建。你应该做一些像'Date.parse(“2016-01-01”+ data.time_start);' – cl3m

+0

超级感谢,它的工作 – user3489502