2015-08-17 40 views
0

我有一個factory('CriteriaSelector') - >(一個類CriteriaSelector),其成員變量爲selectedValues = [](數組)。 我想在範圍上引用此如下:

// in controller 
$scope.criteriaSelector = new CriteriaSelector(); 
$scope.selectedValues = $scope.criteriaSelector.selectedValues; 
//The above code according to me should point to the same array. 

我想要的行爲,其中,如果$scope.criteriaSelector.selectedValues得到更新,那麼它應該在$scope.selectedValues反映,反之亦然。

但問題是,我沒有看到這種變化反映在$scope.selectedValues

請幫助。

回答

1

通過這樣做,值將初始化(在控制器初始化),並將無法更改。如果你想要一個更新的值,你必須使用方法。

在您的工廠將是這樣的:

yourFactory.getSelectedValues = function(){ 
    return selectedValues; 
} 

yourFactory.setSelectedValues = function(values){ 
    selectedValues = values; 
} 

而且隨着吸氣,例如,可以使數據綁定:

$scope.getSelectedValues = $scope.criteriaSelector.getSelectedValues 

在這裏,您do'nt把()。像這樣,你會匹配的功能,而不是價值。您將能夠在此之後獲得您的DOM中的數據:

{{getSelectedValues() }} 

而且在這裏,您的數據將隨時刷新。

相關問題