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
}
这个数字只是保持原样,它的因子没有显示出来。我该如何解决?我真的迷路了。
答案 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)