Показать сообщение отдельно
  #1 (permalink)  
Старый 17.02.2015, 14:01
Интересующийся
Отправить личное сообщение для capscom Посмотреть профиль Найти все сообщения от capscom
 
Регистрация: 28.08.2011
Сообщений: 28

Как правильно изменять наблюдаемый объект?
Здравствуйте !
Есть большая форма, с зависимыми между собой элементами. При изменении значений формы, нужно слать запрос, для получения ответа от сервера.

<select ng-model="form.brandId" ng-options="brand.id as brand.name for brand in brands"></select>
  <select ng-model="form.modelId" ng-options="model.id as model.name for model in models"></select>


$scope.form = {};

$scope.$watchCollection('form', function(form){                       
       if ( ! form.brandId && form.modelId){
            delete form.modelId;    
       }                      
      console.log('load data ...');
});


И возникает проблема в самом $watch-ре, если нужно удалить значение модели, когда выбран бренд, то функция вызовется повторно, т.к. наблюдаемый объект изменился. И из-за этой ситуации, появляются лишние запросы к серверу.

Подскажите, пожалуйста, как работать с множеством зависимых элементов, чтобы не допускать повторных вызовов $watchCollection ?
Ответить с цитированием