AngularJS -给值添加值

AngularJS - Adding value to to value

本文关键字:添加 AngularJS      更新时间:2023-09-26

是否可以将整数添加到作用域变量?

e。g

<div style="top:{{top + 140}}px">....</div>  

如果top是140,它应该显示"280px"而不是"140140px"

这可能吗?

我不认为这是最好的方法,但你可以试试:

<div style="top:{{top * 1 + 140}}px">....</div>  

关于你对@Mathew Berg的回应:

你遇到这个问题的原因是因为你告诉Angular "top"是一个字符串字面值。虽然Mathew的方法将值解释为整数,但它基本上仍然是一种变通方法。@blesh说你应该在控制器级别做这件事是完全正确的。所以…

function myContoller($scope) {
    $scope.top = '1';
}
<div style="top:{{top + 140}}px"></div>
<!-- Output = <div style="top:1140px"></div> -->

function myContoller($scope) {
    $scope.top = 'one';
}
<div style="top:{{top + 140}}px"></div>
<!-- Output = <div style="top:one140px"></div> -->

以同样的方式处理。

基本上你是在无意中连接而不是预期的算术。

幸运的是,补救方法非常简单。你所需要做的就是把你要传递的整数中的圆括号去掉,然后Angular就会说"嘿,这是一个数字,让我们做一些数学运算吧"。

eg 
function myController($scope) {
    $scope.top = 140;
}
<div style="top:{{top + 140}}px"></div>
<!-- Output = <div style="280px"></div> -->

你说"Top在$scope.dealer中,我使用ng-repeat="d in dealer"。所以它应该是d.p op",所以你可能需要稍微调整一下以访问适当的范围,但解决方案仍然是正确的。Angular最棒的一点是,它可以在自己的标记语法中处理表达式。希望这篇文章能帮助你解释问题的原因,因为Angular确实是按照你想要的方式工作的。div =)