算术加法(+)在ng-bind中不起作用
Arithmetic addition (+) is not working in ng-bind
有一个对象
objData.pendingCount = '2',objData.refundCount = '1',objData.saleCount = 43;
我执行<td ng-bind="(objData.pendingCount / objData.saleCount * 100).toFixed(2)"></td>
这个工作正常,但是当我执行
<td ng-bind="(objData.pendingCount +objData.refundCount)/ objData.saleCount * 100).toFixed(2)"></td>
这里的+不是在执行算术运算,而是在进行连接。
我假设这些值来自某种类型的文本框(通过ng-model)。如果是这样,解决这个问题的最简单方法是在它们上设置一个type='number'
, angular会处理剩下的!
<input ng-model="objData.pendingCount" type="number" />
...
另一种方法是使用+前缀强制进行数字转换,如
<span ng-bind="((+objData.pendingCount + +objData.refundCount)/ objData.saleCount * 100).toFixed(2)"></span>
为什么不能在Angular表达式中使用Number(…)将字符串变成数字
使用Number
将字符串转换为数字将不能直接工作,因为(从https://docs.angularjs.org/guide/expression)
Context: JavaScript表达式根据全局变量求值窗口。在Angular中,表达式是根据作用域对象计算的。
如果你需要使用Number
你可以输入
$scope.Number = $window.Number;
,然后在表达式中使用它。其他全局窗口属性也是如此。
纠正你的表达式:
<td ng-bind="(objData.pendingCount +objData.refundCount)/ (objData.saleCount * 100).toFixed(2)"></td>
缺少一个开括号
我用
<td ng-bind="(sum(objData.pendingCount,objData.refundCount)/objData.saleCount*100).toFixed(2)"></td>
和控制器
$scope.sum = function (a, b) {
return parseInt(a) + parseInt(b);
}
相关文章:
- 角度无线电按钮ng模型不起作用
- 角度Js ng-disabled不起作用
- 为什么ng节目不起作用
- 带有粘性标题的角度ng视图不起作用
- select中布尔值的Angularjs ng值不起作用
- AngularJS触发ng更改不起作用
- Angular js-ng选项不起作用
- Ember.run.bind 不起作用
- 实时 Angular js ng-hide 不起作用
- 当输入字段位于 ng 重复中时,ng 禁用不起作用
- AngularJS ng重复不起作用
- 当使用jQuery设置值时,ng模型不起作用
- 我的ng include不起作用
- 为什么这个简单的ng绑定和ng显示不起作用
- UL(在 P 内部)内的 ng 重复不起作用
- Ng-option不起作用
- 角度ng模型不起作用
- Angular js ng-class 不起作用
- ng 路由不起作用指令
- 不知道为什么ng-click不起作用