さまざまなオプションと、フォームのさまざまな部分に表示される現在の推定合計を含む単一ページの Angular 購入フォームがあります。推定合計インラインの計算はかなり複雑で、テストが困難です。
<span ng-bind="purchase.itemTotal + selectedInsurance() + selectedShipping()">?</span>
ng-bind
スコープの関数にリファクタリングし、この関数として次のように指定して、ビューを DRY しようとしました。
$scope.estimatedTotal = function() {
if ($scope.purchase)
return $scope.purchase.itemTotal + $scope.selectedInsurance() + $scope.selectedShipping();
}
このステートメントは、モデルが Ajax を介して取り込まif
れる前に評価される場合があるため、必要です。$scope.purchase
問題は、Ajax GET が完了する前に関数が最初に undefined を返し、その後ngBind
再評価しないことです。
ngBind
追加のモデル値を監視するように指示できますか? ngBind
ダーティチェックでうまく機能する複雑な式をリファクタリングするための別の推奨される方法はありますか?