2016-05-14 14 views
0

HTML:AngularJS: Nummer wird nicht aktualisiert, wenn die Funktion aufgerufen wird?

<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 
    } 

Die Zahl weilt gerade so, wie es ist, seine Fakultäts nicht dargestellt ist. Wie behebe ich das? Ich bin wirklich verloren.

+0

Sie sind der Wert durch die Funktion zurückgegeben nicht consumig – Rimpy

Antwort

1

Wenn Sie ctrl.number an die Funktion übergeben, ist es eine Zahl, so dass der Wert kopiert wird. In der Funktion berechnen Sie mit Rekursion die entsprechende Fakultät, aber Sie geben sie nur zurück und ändern ctrl.number nicht, was Sie wirklich wollen.

Einfache Lösung wäre ng-click="ctrl.factorial(ctrl.number) zu ändern ng-click="ctrl.number = ctrl.factorial(ctrl.number)

Verwandte Themen