問題:
我想通過數組來傳遞變量到$ watchGroup和循環數組更新每個值,但這似乎並沒有工作:
$scope.secondsElapsed = stopWatchService.secondsElapsed;
$scope.minutesElapsed = stopWatchService.minutesElapsed;
$scope.colon = stopWatchService.colon;
$scope.timers = ['stopWatchService.secondsElapsed', 'stopWatchService.minutesElapsed', 'stopWatchService.colon'];
$scope.$watchGroup([$scope.timers], function(newValues, oldValues, scope){
if (newValues && newValues !== oldValues){
for (var i=0; i<newValues.length; i++){
scope.timers[i] = newValues[i];
}
}
});
當前的工作圍繞我有如下:
$scope.$watchGroup(['stopWatchService.secondsElapsed', 'stopWatchService.minutesElapsed', 'stopWatchService.colon'], function(newValues, oldValues, scope){
scope.secondsElapsed = newValues[0];
scope.minutesElapsed = newValues[1];
scope.colon = newValues[2];
});
任何想法?
您可能要深手錶'stopWatchService'呢?對於深度觀察組我早些時候提供了一個答案,可能它可能會幫助你... http://stackoverflow.com/questions/25956768/how-to-watch-more-than-one-collection-in-angular/25960854# 25960854 – PSL 2014-09-25 17:47:24
在你的第二個代碼片段中,'$ scope.timers'只保存了那個時間點的經過時間值,這意味着它是原始數組,因此後面的變量變化將不可用,因此watch函數將不會每次運行評估手錶會產生相同的結果.. $ scope。$ watchGroup($ scope.timers,function(...'。請記住'watchGroup'不會深入監視... – PSL 2014-09-25 17:56:32
感謝。所以我該如何聲明我的數組呢?我不知道如何傳遞變量本身而不是值。 – justinSYDE 2014-09-25 18:02:06