изменение модели в дочерней директиве, действующей в шаблоне, а не в родительской директиве с двухсторонним связыванием - PullRequest
0 голосов
/ 06 июля 2018

Hello Folks: у меня есть две директивы, вторая включена в шаблон первой с двухсторонней привязкой

app.directive('A', function() {
  return {
    template : '{{ value}} <B model="value'><B>
    link : function( scope) {
        scope.value = null;
        scope.$watch('value', function(newValue) {
        console.log( newValue )
     });
    }
  }
}

И директива B, где я делаю какое-то действие, меняющее значение

app.directive('B', function() {
  return {
    template : 'etc ...'
    scope : {
      model : '='
    },
    link : function(scope) {
       //  here i do some action changing
       scope.model = { bla bla bla }

    }
  }
}

Когда я выполняю свое действие, изменяя scope.model в B, {{value}} обновляется в шаблоне, но scope.value не обновляется в ссылке без консольного журнала нового значения ... Я могу вызвать событие в B, который может быть вызван ссылкой A, но я бы хотел, чтобы scope.value изменился в ссылке, у вас есть какие-нибудь элегантные решения?

1 Ответ

0 голосов
/ 06 июля 2018

Добавьте контроллер и посмотрите его внутри.

app.directive('A', function() {
  return {
    template : '{{ value}} <B model="value'><B>
    link : function( scope) { 
     },
     controller: function($scope){
        $scope.$watch('value', function(newValue) {
            console.log( newValue )
        })
     } 
  }
}
...