无法在AngularJS的$scope中引用类成员(Array)

Unable to reference Class member (Array) in $scope in AngularJS

本文关键字:引用 成员 Array scope AngularJS      更新时间:2023-09-26

我有一个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

请帮。

通过这样做,该值将被初始化(在控制器init上)并且无法更改。如果你想要一个更新的值,你必须使用method.

在您的工厂中,它将是这样的:

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

和getter一起,例如,你可以做数据绑定:

$scope.getSelectedValues = $scope.criteriaSelector.getSelectedValues

这里不放( )。像这样,您将匹配函数而不是值。您将能够像这样在DOM上获取数据:

 {{getSelectedValues() }}

在这里,您的数据将在任何更改时刷新。