2017-10-05 45 views
3

Ugrading材料2.0.0测试版11现在我有这样的错误, 我怎样才能解决这个问题角4错误:模板解析错误:没有指令与“EXPORTAS”设置为“matAutocomplete”

<mat-form-field> <input matInput 
    placeholder="{{'hotel.detail.labels.city' | translate }}" 
    [matAutocomplete]="tdAuto" name="city" #city="ngModel" 
    [(ngModel)]="selected.city" 
    (ngModelChange)="searchCity($event)"> </mat-form-field> 
    <mat-autocomplete #tdAuto="mdAutocomplete"> 
     <mat-option (onSelectionChange)="setCity(city)" 
      *ngFor="let city of cities" [value]="city.name"> 
     <div class="row"><span>{{city.name}} ({{city.province}})</span> <span><small>{{city.region}}</small></span> 
      </div> 
    </mat-option> </mat-autocomplete> 

回答

3

更新:

在您的模板中,您正在使用mdAutocomplete。将其更改为matAutocomplete

这条线:

<mat-autocomplete #tdAuto="mdAutocomplete"> 

到:

<mat-autocomplete #tdAuto="matAutocomplete"> 

app.module或你的模块在您使用的材料模块,检查它们是否与Mat,而不是Md前缀。另外,模块providers中的MATERIAL_COMPATIBILITY_MODE提供者条目。

导入模块中的以下内容:

import {MATERIAL_COMPATIBILITY_MODE} from '@angular/material'; 

,然后将其添加为提供者:

@NgModule({ 
    providers: [ 
    {provide: MATERIAL_COMPATIBILITY_MODE, useValue: true}, 
    // ... 
    ], 
}) 

看到这个CHANGELOGPrefix Updater。链接到工作StackBlitz demo

+0

我已经使用前缀更新,并将此提供给app.module – Alessandro

+0

您还需要导入'MatAutocompleteModule',而不是'MdAutocompleteModule' – Faisal

+0

前缀更新已经改变了这种 – Alessandro