我有一个控制器,在构造时,将$ scope.unit设置为等于一个新对象。然后,我在console.log中显示当前日期,并在console.log中查找该对象。这应该将当前日期和BLANK对象打印到控制台。
在下面,我有一个$ timeout函数,延迟7秒,我将date属性设置为当前日期。然后我记录当前日期,并再次记录该单位。 我希望在控制台窗口中显示以下结果:
Sep 12 2016 11:39:27 GMT
Object{}
Sep 12 2016 11:39:34 GMT
Object{ date: Sep 12 2016 11:39:34 GMT }
相反,日期属性以某种方式穿越时间,我得到以下结果:
Sep 12 2016 11:39:27 GMT
Object{ date: Sep 12 2016 11:39:34 GMT }
Sep 12 2016 11:39:34 GMT
Object{ date: Sep 12 2016 11:39:34 GMT }
如果我将时间间隔从7秒增加到8秒,它会按预期工作。这种情况发生在7秒及以下。
代码示例如下
angular.module('test').controller('$scope', [function ($scope){
$scope.unit = {};
console.log(new Date());
console.log($scope.unit);
$timeout(function () {
$scope.unit.sensor_data = new Date(); // Data from sensors attached to this unit
console.log(new Date());
console.log($scope.unit);
}, 7000);
}]);