DieZz
@DieZz

Почему на отрабатывает $watch в директиве?

Доброго времени суток.

Пишу директиву, суть которой - вызов модального окна и отправка данных на сервер из формы в этом окне. Окно показываю с помощью директивы Modal из Bootstrap components для Angular ( angular-ui.github.io/bootstrap ).

'templates/modal/addCom.html'
<select class="form-control" ng-model="selected">
    <option ng-repeat="type in types" value="{{type}}">{{type.comment}}</option>
</select>


app.directive('addCom',function($modal,addComService){
    return {
        restrict: 'A',
        link : function($scope, $element, $attributes){
            $element.on('click',function(){
                modal();
            });

            var modal = function(){
                var modalInstance = $modal.open({
                    animation: $scope.animationsEnabled,
                    templateUrl: 'templates/modal/addCom.html',
                    controller: function($scope,$modalInstance){

                        $scope.selected = {};
                        $scope.disabled = true;

                        $scope.$watch(
                            function(){
                                return $scope.selected;
                            },
                            function(newVal,oldVal){
                                //срабатывает только при вызове окна 
                                console.log(newVal);
                                //срабатывает только при вызове окна 
                                console.log(oldVal);
                            },
                            true
                        );

                    }
                })
            };
        }
    }
});


$watch срабатывает только при открытии модального окна. При изменении модели selected $watch не срабатывает, хотя если выводить значение модели в виде, видно, что данные меняются.
  • Вопрос задан
  • 136 просмотров
Решения вопроса 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
скаляры в скоупах не наследуются, так как передаются по значению. Варианты, хранить данные в объекте, они передаются по ссылке а ссылки наследуются.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы