md-select不会触发ngModelChange或更改事件

时间:2017-05-17 18:53:22

标签: angular angular2-template angular2-forms angular-material2

我有这段代码:

<md-select [(ngModel)]="model" (change)="updateModel()" 
(ngModelChange)="model=$event;updateModel()"> [...] <md-select>

但是当我以编程方式更新模型时,既没有(更改)也没有(ngModelChange)  被触发'因为永远不会调用updateModel()。

1 个答案:

答案 0 :(得分:1)

我没有看到您的完整代码,但如果md-select位于FORM标记内,则无效。

我测试了材料文档中的示例,并且(更改)/(ngModelChange)在原始代码中没有工作。但是,一旦我把它放在DIV中,他们就会工作。

这是工作Plunker

<div>
  <md-select placeholder="Favorite food" 
             [(ngModel)]="selectedValue" 
             name="food"
             (ngModelChange)="model=$event;updateModel2()"
            (change)="updateModel1()">
    <md-option *ngFor="let food of foods" [value]="food.value">
      {{food.viewValue}}
    </md-option>
  </md-select>

  <p> Selected value: {{selectedValue}} </p>
</div> 

我创建了两个单独的函数,(更改)调用updateModel1()和(ngModelChange)调用updateModel2()。