如何更新被包含元素的NgModel

时间:2019-03-28 20:10:45

标签: angularjs

我需要从指令内部更改已嵌入选择框的模型。通常,我会使用require: '?ngModel'来做到这一点,但这仅在元素上附加的伪指令作为无法包含的属性时才有效。

1 个答案:

答案 0 :(得分:0)

已包含的内容绑定到指令的父作用域。

一个人可以使用ng-form指令来封装被遮盖的ngModelControllers并将这些控制器放在该指令的独立范围内。

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

然后可以使用ngModelController的$setViewValue方法:

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

DEMO on PLNKR