2015-05-07 103 views
0

我有一个条件,如果在我的JavaScript如下:AngularJS重新初始化的对象

if($scope.cal){ 
    delete $scope.cal; 
    $scope.cal = new CalHeatMap(); 
    var datedata = $scope.attendance.dates; 

}else{ 
    $scope.cal = new CalHeatMap(); 
    var datedata = $scope.attendance.dates; 
} 

指几个帖子之后,我意识到我们不能完全删除对象。在我的场景中,我需要初始化一个新的热图并替换现有的热图。我如何在这种情况下得到解决?

也试过:

if($scope.cal){ 
    $scope.cal = {}; 
    $scope.cal = new CalHeatMap();... 
+0

您可能想要使用:https://github.com/shekhargulati/angular-cal-heatmap-directive –

回答

0

你不应该需要在$范围删除或空白的现有对象。只需定期分配就可以工作,无论属性是否已定义。

$scope.cal = new CalHeatMap(); 

从我了解的$ scope中,子范围不会看到变化。要解决这个问题,您需要更新$ scope上的对象而不是替换它。例如:

$scope.vm.cal = new CalHeatMap();