我有一个单页的 Angular 购买表单,其中包含多种选项和一个显示在表单各个部分的运行估计总数。计算估计的总内联相当复杂且难以测试:
<span ng-bind="purchase.itemTotal + selectedInsurance() + selectedShipping()">?</span>
我试图通过重构为作用域上的一个函数来干燥我的观点,并指定ng-bind
为这个函数:
$scope.estimatedTotal = function() {
if ($scope.purchase)
return $scope.purchase.itemTotal + $scope.selectedInsurance() + $scope.selectedShipping();
}
该if
语句是必要的,因为它有时会在$scope.purchase
通过 Ajax 填充模型之前进行评估。问题是该函数最初在 Ajax GET 完成之前返回 undefined,但随后ngBind
不再重新评估它。
我可以告诉我ngBind
注意额外的模型值吗?是否有另一种推荐的方法来重构ngBind
与脏检查配合得很好的复杂表达式?