2013-10-10 105 views
1

我想在我的控制器中綁定範圍對象上運行基本的數學函數。該視圖是一系列滑塊,需要基於幾個不同滑塊的用戶輸入做出反應。我似乎無法獲得在前端進行實時更新的值。Angularjs數學綁定範圍對象

這是我對這些值的'計算'。

$scope.mainSlide = { 
    assets: ($scope.slide1.assets * $scope.slide2.assets/.1), 
    roa: ($scope.slide1.roa * $scope.slide2.roa/.1) 
}; 

我有點困惑,爲什麼計算值沒有綁定在前端。

任何幫助,或方向將不勝感激!

+0

你究竟想達到什麼目的? – Phill

+0

@Phill試圖讓mainSlide更新視圖,因爲slide1.assets中的值會發生變化。它應該計算值,並輸出到不同的範圍滑塊,有點像活動圖。 – flashpunk

回答

4

對於$scope上的計算屬性,可以使用$scope.$watch在值更改並設置新值時重新計算(例如,觀察slide1和slide2,在主線更改時設置主線滑動的設置值)。您還可以設置mainSlide的計算值是功能,它們將被自動更新:

你的情況:

$scope.mainSlide = { 
    assets: function() { return ($scope.slide1.assets * $scope.slide2.assets/.1);}, 
    roa: function() { return ($scope.slide1.roa * $scope.slide2.roa/.1);} 
}; 

要在您的視圖中使用它們:

Assets: {{mainSlide.assets()}} 
Roa: {{mainSlide.roa()}} 

例Plunker的功能方法:http://plnkr.co/edit/tFiZ5z?p=preview

用於$ watch方法的示例性調節器:http://plnkr.co/edit/5iASgJ?p=preview

+0

這很好。然而(我沒有包括的東西),我如何將它應用到我的視圖上的ng-model屬性? – flashpunk

+0

在這種情況下,我只是使用$ watch方法。更新答案以添加示例Plunker。 –

+0

非常感謝,像魅力一樣工作。我想我需要更多地瞭解$ watch方法。 – flashpunk