Как обновить NgModel включенного элемента - PullRequest
0 голосов
/ 28 марта 2019

Мне нужно изменить модель transcluded selectbox изнутри директивы. Обычно я делаю это с require: '?ngModel', но это работает, только если директива в прикрепленном к элементу как атрибут, который не может сделать transclusion.

1 Ответ

0 голосов
/ 29 марта 2019

Трансклюзивное содержимое привязано к родительской области действия директивы.

Можно использовать директиву ng-form, чтобы заключить включенные ngModelControllers и поместить эти контроллеры в область изоляции директивы.

  <ng-form name="$ctrl.form1">
    <fieldset>
      Transcluded content<br>
      <ng-transclude></transclude>
    </fieldset>
  </ng-form>

Затем можно использовать $ setViewValue метод ngModelController:

  controller: function() {
    this.radioChange = function(val) {
      console.log(val);
      this.form1.sel1.$setViewValue(val);
      this.form1.sel1.$render();
    }
  },

DEMO на PLNKR

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...