AngularJS - $interpolate - 添加额外计算逻辑的最佳方式

AngularJS - $interpolate - Best way to add additional calculation logic

我有以下代码片段(见下文)

$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));
                        });
                    }
                }
            });

在整个计算中使用括号:

{{ (amount + (amount / 100 * tax)  ) | currency }}

以避免 | 运算符优先于 + 运算符。

参考资料