AngularJS:调用函数时编号不更新
AngularJS: Number not updating when function is called?
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
}
这个数字只是保持原样,它的阶乘没有显示出来。我该如何解决这个问题?我真的很失落。
当您将ctrl.number传递给函数时,它是一个数字,因此它的值会被复制。在函数中,您使用递归计算相应的阶乘,但您只是返回它,而不是更改ctrl.number,这正是您真正想要的。
简单的解决方案是将ng-click="ctrl.factorial(ctrl.number)
更改为ng-click="ctrl.number = ctrl.factorial(ctrl.number)
相关文章:
- Javascript循环不会自我更新
- 添加文字和评论功能更新Div
- AngularJS:ng之后,重复$scope值未按预期更新
- 如何通过数组更新角度子范围
- Ajax聊天消息重复而不仅仅是更新
- 通过CSV文件上载更新数据库表
- 平均值:无法将数据更新到数据库
- $rootScope未使用forEach进行更新
- d3基于用户选择动态更新节点
- 有条件更新d3.js力图中节点的最佳方法
- AngularJS:调用函数时编号不更新
- 使用AJAX更新Shopify中的购物车编号
- 可拖动和可排序项目编号在更改时更新
- 通过选项卡更新子编号
- MongoDB:用反值更新字段编号
- 在 AJAX 上更新编号,laravel 5.2
- 角度-更新模板中的徽章编号
- AngularJS输入类型编号不'键入字母时不要更新模型
- 如何更新innerHTML编号与每个输入提交
- 用于更新的Jquery编号计数器