如何一起更新两个$ scope属性

时间:2014-01-22 01:25:55

标签: angularjs data-binding

我不知道为什么$scope.result$scope.countDown更改时无法更新以及如何修复它?请帮助,谢谢

SCRIPT:

angular.module('mean.system').controller('HeaderController', ['$scope', 'Global', '$timeout', '$http', '$location', function ($scope, Global, $timeout, $http, $location) {

        $scope.countDown = 10;  
        $scope.result = $scope.countDown;  
        var timer = setInterval(function(){
            $scope.countDown--;
            $scope.$apply();
        }, 1000);  

        console.log($scope.result);

    }]);

HTML:

<section data-ng-controller="HeaderController">
    <div> my time: {{result}} </div>
    <div> your time: {{countDown}} </div>
</section>

2 个答案:

答案 0 :(得分:1)

如果你想让它们一起使用,你需要一块手表:

$scope.$watch('countDown', function(newVal) {
  $scope.result = newVal;
});

$scope.result = $scope.countDown;只为result提供当前值countDown的一次性值。它就像任何其他变量一样。例如,var a = 'abc';您不希望更新,对吧?它只是将变量设置为值。

答案 1 :(得分:0)

它没有更新,因为您没有更新它。

就这样做:

    var timer = setInterval(function(){
        $scope.countDown--;
        $scope.result = $scope.countDown;
        $scope.$apply();
    }, 1000);