2013-06-02 60 views
0

我有這個變量的角度項目:如何根據angularjs中的其他屬性將對象綁定到表達式?

$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 

如何結合這樣的事情?

+0

怎麼樣用函數$ scope.priceperkilometer =函數(){}自變量取決於其他變量它使更多的意願做到這一點。 – mpm

+0

是的。這就是我開始想到的。你認爲它會刷新顯示? – mcbjam

回答

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(); 
}); 
相關問題