好(click)="PageNumberChanged(pageNumber-1)"
这种方式非常正常,但(click)="PageNumberChanged(pageNumber+1)"
将字符串而不是数字添加为值如果pageNumber
为10则结果应为11
,但它会返回101
我尝试了什么: -
(click)="PageNumberChanged('{{pageNumber+1}}')"
(click)="PageNumberChanged(eval(pageNumber+1))"
(click)="PageNumberChanged('pageNumber+1')"
@Input()pageNumber:number;
从其他组件获取pageNumber
并确保将数字作为值发送。
我知道我可以创建一个带有两个参数的函数并且可以完成工作,但问题是我想要理解错误,以便我可以进一步改进角度,
任何帮助都会很棒,谢谢!
答案 0 :(得分:0)
执行控制器功能中的逻辑,
$scope.PageNumberChanged = function(pageNum){
var newPageNum = pageNum + 1;
}
或者您可以直接将其作为
传递 <button ng-click="PageNumberChanged(pageNum +1 )"> Change </button>
注意强>
此外,你应该用 (click)
替换 ng-click
,没有(点击)angularjs,它只有角度
修改强>
由于OP的问题在于Angular5,它应该如下工作,
(click)="PageNumberChanged(pageNumber+1)"
您遇到问题的原因是您的变量是一个String,当您在其上添加+时,它将进行连接
<强> DEMO WITH ANGULAR5 强>
答案 1 :(得分:0)
如果你的pageNum变量是一个字符串,那么你所做的一切都是&#34; +&#34;在其中,将转换为字符串。您可以通过在求和之前将其转换来确定它是一个数字,如下所示:Number(pageNum)+ 1
console.log(typeof "1");
console.log(typeof Number("1"))
&#13;
答案 2 :(得分:0)
(click)="PageNumberChanged(pageNumber+1)"
到
(click)="PageNumberChanged(pageNumber+'+1')"
component.ts中的和eval
是我能让它工作的唯一方法。
仍然无法在我的代码中找到真正的问题。