Невозможно сослаться на члена класса (Array) в $ scope в AngularJS

0

У меня есть factory('CriteriaSelector') → (класс CriteriaSelector) с selectedValues = [] переменной- 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 ответ

1

Делая это так, значение будет инициализироваться (при инициализации контроллера) и не сможет измениться. Если вы хотите обновить значение, вы должны использовать метод.

На вашем заводе это будет примерно так:

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

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

Например, с помощью getter вы можете выполнить привязку данных:

$scope.getSelectedValues = $scope.criteriaSelector.getSelectedValues

Здесь вы не помещаете ( ). Подобно этому, вы будете соответствовать функции, а не значению. После этого вы сможете получить данные на своем DOM:

 {{getSelectedValues() }}

И здесь ваши данные будут обновляться при любых изменениях.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню