関数を使用したバリアントは機能します。ただし、値を事前に計算することもできます (priceperkilometer
頻繁に使用する場合、これはより高速になる可能性があります)。
$scope.kilometer = 20;
$scope.carType = 1;
calculatePrice = function() {
if ($scope.kilometer < 20 and $scope.carType=1)
return 10;
else if ($scope.kilometer < 20 and $scope.carType=2)
return 20;
else if ($scope.kilometer >= 20 and $scope.carType=1)
return 30;
else if ($scope.kilometer >= 20 and $scope.carType=2)
return 40;
};
$scope.priceperkilometer = calculatePrice();
$scope.$watch('kilometer', function(newValue, oldValue) {
if (newValue != oldValue)
$scope.priceperkilometer = calculatePrice();
});
$scope.$watch('carType', function(newValue, oldValue) {
if (newValue != oldValue)
$scope.priceperkilometer = calculatePrice();
});