AngularJS:调用函数时数字不更新?

时间:2016-05-14 00:42:27

标签: javascript angularjs

HTML:

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

这个数字只是保持原样,它的因子没有显示出来。我该如何解决?我真的迷路了。

1 个答案:

答案 0 :(得分:1)

当你将ctrl.number传递给函数时,它是一个数字,因此它的值被复制。在函数中,您使用递归计算相应的阶乘,但您只是返回它而不是更改ctrl.number,这是您真正想要的。

轻松修复将 @Component public class UtilC { @Autowired private MyHttpClient client; public int methodC() { try { client.execute(); } catch(NullPointerException npe) { new MyHttpClient.execute(); } } } 更改为 ng-click="ctrl.factorial(ctrl.number)