2014-01-23 30 views
0

爲什麼此代碼無法工作?我爲$範圍賦值,當頁面呈現時,我看到5,但是一旦定時器觸發,值不會更新。我很想知道原始圖片5需要成爲什麼樣的對象才能讓Angular看到它的變化。另外,如果有一種合適的方法來做這種事情,這將是很好的知道。

app.controller('Total', ['$scope', function($scope) { 
    $scope.total = 5; 
    setTimeout(function() { 
     $scope.total = 1300; 
    }, 3000); 
    } 
]); 

回答

0

的問題是,角度不知道我分配了一個新的價值scope.total $,see the StackOverflow answer for more information on how binding works。解決的辦法是使用$ scope。$ apply並將這個賦值包裝在一個函數中。角然後將比較以前的值和新的值來激發正確的功能,see an explanation with sample code of $scope.$apply here

解決方案:

app.controller('Total', ['$scope', function($scope) { 
    $scope.total = 5; 
    setTimeout(function() { 
     $scope.$apply(function() { 
     $scope.total = 1300; 
     }); 
    }, 3000); 
    } 
]); 
0

使用$超時,那麼你就需要使用$適用。

不同的問題,但這裏同樣的答案,ng-repeat not growing with object

+0

該解決方案是正確的選擇做什麼,我試圖,但並沒有幫助我理解我的問題更好。謝謝回覆! – buddyw

相關問題