0

この変数を使用したAngularプロジェクトがあります:

$scope.kilometer = 20;
$scope.carType=1;

私はそれが欲しい

$scope.priceperkilometer

同等

 10 if $scope.kilometer < 20 and $scope.carType=1
 20 if $scope.kilometer < 20 and $scope.carType=2
 30 if $scope.kilometer >= 20 and $scope.carType=1
 40 if $scope.kilometer >= 20 and $scope.carType=2

このようなものをバインドする方法は?

4

1 に答える 1

1

関数を使用したバリアントは機能します。ただし、値を事前に計算することもできます (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();
});
于 2013-06-02T16:46:29.657 に答える