2014-09-18 65 views
0

我正在使用角度,我無法讓我的櫃檯工作。 我有這樣的功能:如何在返回之前遞增計數器而不傳遞迴調函數?

$scope.statClass = function(summoner, key) { 
    var stat = 'stat-same'; 
    if(shouldRevert(key)) { 
    summoner === 1 ? summoner = 2 : summoner = 1; 
    } 
    if(summoner === 1) { 
    if($scope.champData1[key] > $scope.champData2[key]) { 
     $scope.score1++; 
     stat = 'stat-bigger'; 
    } else if ($scope.champData1[key] < $scope.champData2[key]) { 
     stat = 'stat-lower'; 
    } 
    } else if(summoner === 2) { 
    if($scope.champData2[key] > $scope.champData1[key]) { 
     $scope.score2++; 
     stat = 'stat-bigger'; 
    } else if ($scope.champData2[key] < $scope.champData1[key]) { 
     stat = 'stat-lower'; 
    } 
    } 
    return stat; 
}; 

,當我試圖確定類格式化某種「格」塊運行。 每次加載我的頁面並顯示{{score1}}或{{score2}}時,它將顯示爲'null'。 如何在返回統計之前增加分數值?

PS:我宣佈$ scope.score1和2之外的功能。

+1

我不認爲這是顯而易見從這個片段,爲什麼你的計數器不工作。你是否將'score1'和'score2'初始化爲'0'? – Pete 2014-09-18 16:49:18

+1

這可能是一個範圍問題。 – 2014-09-18 17:00:17

回答

0

每當綁定到該控制器的元素進入DOM時,都會創建控制器的新實例。控制器的每個實例都有唯一的計數器。

如果「每次我的網頁加載」:

  1. 你的意思是瀏覽器刷新整個頁面,不這樣做,:-),棱角分明是「單頁應用程序的。沒有數據從一個負載傳送到下一個負載。
  2. 你的意思是一條新的路線被加載,這是預期的。使用服務和/或$ broadcast/$ emit + $ on使計數器保持同步
  3. DOM元素通過ng-if或ng-switch變得可見:這些元素被取出並重新插入到DOM創建一個新的控制器(如果控制器位於/在ng-if'd元素之下)。改爲使用ng-show/ng-hide。這些更改顯示屬性,但保留DOM中的元素。