私はいくつかの複雑な命令を使用していませんが、単純な乗算と角度の2方向の結合は失敗するようです。私が失敗すると言うと、私は乗算するときにビューを更新していません。しかし、いくつかのUI要素をクリックするか、ラジオボタンをクリックするなど、何らかの方法でビューを変更すると、値は魔法のように現れる。何らかの調査の後、私が掛け合ってもその申請は呼ばれていないことが分かった。 $ scopeを追加しました$ apply(function(){})。それはそれを修正するようだ。しかし、私はいくつかのポストで読む。明示的に$ applyを呼び出すことは絶対にしないでください。それは質問をする。何が起こっているの? console.log()は変更された値を表示していますが、値はビューに適用されていません。また、私は直接スコープを操作していません。例えば、角度1.x:なぜ2ウェイ結合が機能しないのですか?
$scope.calculateOutstationCharges = function() {
if ($scope.customer.calculatedDistance !== 0) {
console.log($scope.customer.kmlimit * $scope.carPricing.perKmCharge * $scope.customer.days);
if (($scope.customer.calculatedDistance * 2) < $scope.carPricing.kmlimit * $scope.customer.days) {
$scope.customer.totalprice_outstation = $scope.carPricing.kmlimit * $scope.carPricing.perKmCharge * $scope.customer.days + $scope.customer.driverCharge;
//console.log($scope.customer.totalprice_outstation). This value is not updated in the view
} else {
$scope.customer.totalprice_outstation = ($scope.customer.calculatedDistance * 2 * $scope.carPricing.perKmCharge)+ $scope.customer.driverCharge;
//console.log($scope.customer.totalprice_outstation); nor is this one
}
$scope.customer.totalprice_outstation += $scope.customer.extra_outstation;
}
$scope.customer.driverCharge = $scope.carPricing.driverCost;
$scope.$digest(); //this does it but with $apply in progess error.
};
値ではない値が作成されたサイクルでは、次のダイジェストサイクルで更新されます。 誰かが似たようなことに遭遇した場合、あなたはそれを解決するために何をしましたか? ありがとう
どのように 'calculateOutstationCharges'を呼び出しますか? –
私はこの関数のように見える関数から呼び出していました。関数calcDistance()この問題についてのことは、角度の外にあるとは、角度の範囲に付けられていない関数と変数を意味します。この場合、呼び出し元の関数は角張っていないため、問題が発生していました。今は動作しているのを修正 –