我有以下代码段(见下文)
建议的方法是向$interpolate
字符串添加其他逻辑吗?
例如,我想将tax
添加到金额中。
{{amount + (amount / 100 * tax) | currency}}
而不是:
{{amount | currency}}
问题是这只是将值附加到字符串。
我如何告诉Angular我想使用数字?
.directive("evalExpression2", function ($parse, $interpolate) {
var expressionFn = $parse("total | currency");
var interpolationFn = $interpolate("The total is: {{amount | currency}}");
return {
scope: {
amount: "=amount",
tax: "=tax",
},
link: function (scope, element, attrs) {
scope.$watch("amount", function (newValue) {
var localData = {
total: Number(newValue)
+ (Number(newValue) * (Number(scope.tax) / 100))
}
//element.text(expressionFn(scope, localData));
element.text(interpolationFn(scope));
});
}
}
});
答案 0 :(得分:1)
在整个计算周围使用括号:
{{ (amount + (amount / 100 * tax) ) | currency }}
避免|
运算符优先于+
运算符。
<强>参考强>