码迷,mamicode.com
首页 > 其他好文 > 详细

angular学习笔记(五)-阶乘计算实例(2)

时间:2014-05-08 10:20:00      阅读:371      评论:0      收藏:0      [点我收藏+]

标签:style   blog   class   code   java   ext   

bubuko.com,布布扣
<!DOCTYPE html>
<html ng-app>
<head>
  <title>2.3.3计算阶乘实例2</title>
  <meta charset="utf-8">
  <script src="../angular.js"></script>
  <script src="script.js"></script>
</head>
<body>
  <div ng-controller = ‘Factorial‘>
    <form action="">
      <input type="text" ng-model="factorial.number"/>
      的阶乘结果是:
      <span>{{factorial.result}}</span>
    </form>
  </div>
</body>
</html>
bubuko.com,布布扣

同样是这个例子:

result的改变,本质上是由于number的改变,而不是input的value值改变,number的改变有可能是input的value值改变,也有可能其它input也绑定了number,也有可能后台的数据发生了改变,

因此,不使用input的ng-change属性来绑定计算result的回调,而是监测number的改变,一旦number发生改变,就实时计算result,并在ui上显示.

可以使用$watch:

bubuko.com,布布扣
function Factorial ($scope) {
    $scope.factorial = {};
    $scope.factorial.number = 0;
    $scope.factorial.result = 1;
    $scope.factorialNum = function(num){
        if(num==0){
            return 1;
        }
        else {
            return num*$scope.factorialNum(--num);
        }
    };
    $scope.compute = function(){
        $scope.factorial.result = $scope.factorialNum($scope.factorial.number);
    };
    $scope.$watch(‘factorial.number‘,$scope.compute)
}
bubuko.com,布布扣

$watch(参数1,参数2):

参数1: 被监测的内容,字符串格式,这个字符串中的内容可以是一个表达式,也可以是$scope中的属性,在后面会详细讲解表达式

参数2: 被监测的内容发生改变后调用的回调

--------------------------------------------------------------------------------------------------------------------------------------------

遗留问题:

$watch中,第一个参数不需要写$scope.factorial.number,而第二个参数则必须写$scope.compute,原因不详

 

 

 

angular学习笔记(五)-阶乘计算实例(2),布布扣,bubuko.com

angular学习笔记(五)-阶乘计算实例(2)

标签:style   blog   class   code   java   ext   

原文地址:http://www.cnblogs.com/liulangmao/p/3714319.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!