2016-05-14 6 views
0

HTML:AngularJS:関数が呼び出されたときに番号が更新されませんか?

<div ng-controller="MainCtrl as ctrl"> 
    <input type="text" ng-model="ctrl.number"> 
    <h2>{{ctrl.number}}</h2> 

    <button ng-click="ctrl.factorial(ctrl.number)"> 
     Click 
    </button> 
</div> 

JS:

angular 
    .module('myApp', []) 
    .controller('MainCtrl', MainCtrl) 

    function MainCtrl() { 
     var ctrl = this; 

     ctrl.number = 5; 

     ctrl.factorial = function(num) { 
      if (num === 1) { 
       return 1; 
      } else { 
       return num * ctrl.factorial(num-1) 
      } 
     } // factorial 
    } 

は数がちょうどその階乗示されていない、それは道を滞在しています。これをどうやって解決するのですか?私は本当に失われています。

+0

に変更することです – Rimpy

答えて

1

関数にctrl.numberを渡すと、その値がコピーされるように番号が渡されます。この関数では、再帰を使って対応する階乗を計算しますが、それを返すだけで、本当に必要なctrl.numberは変更しません。

簡単に修正はあなたが値が関数によって返さconsumigされていないng-click="ctrl.factorial(ctrl.number)ng-click="ctrl.number = ctrl.factorial(ctrl.number)

関連する問題