我们有一个带有 Angular Material 的 Angular 4 应用程序,一旦我们在生产模式下运行网站,它似乎会生成不同的 HTML。我们使用angular/flex-layout进行布局,使用 webpack 进行捆绑等。作为本地和产品差异的示例:
当地的:
<div class="mat-input-table">
<!---->
<div class="mat-input-infix">
<button type="button" class="mat-datepicker-toggle" aria-label="Open calendar"></button>
<input formcontrolname="arrivalDate" mdinput="" placeholder="Arrival" aria-expanded="false" aria-haspopup="true" aria-owns="md-datepicker-0" class="mat-input-element ng-pristine ng-valid ng-touched" id="md-input-1">
<span class="mat-input-placeholder-wrapper"> <!----><label class="mat-input-placeholder mat-float" for="md-input-1"> Arrival <!----> </label> </span> </div>
<!---->
</div>
产品:
<div class="mat-input-flex">
<!---->
<div class="mat-input-infix">
<button class="mat-datepicker-toggle" type="button" aria-label="Open calendar"></button>
<input class="mat-input-element ng-pristine ng-valid ng-touched" formcontrolname="arrivalDate" mdinput="" placeholder="Arrival" aria-expanded="false" aria-haspopup="true" aria-owns="md-datepicker-0" id="md-input-1" aria-invalid="false">
<span class="mat-input-placeholder-wrapper"><!----><label class="mat-input-placeholder ng-tns-c14-1 mat-float" for="md-input-1">Arrival
<!----></label></span></div>
<!----></div>
请原谅格式,但正如您所见,这些块中的顶级 div 在不同的环境中分配了不同的类。这个类不是我们的 HTML 中的东西,而是在项目的输出中生成的。任何线索,想法,想法都欢迎在这里,我们对这样的问题真的不熟悉。
编辑:生成这些输出的 HTML:
<!-- Arrival Date -->
<div fxFlex="100" fxFlex.gt-sm="20" class="form-group datepicker-container gutter-right-gt-sm" [class.has-error]="formErrors.arrivalDate">
<div fxLayout="row" fxLayoutAlign="center center" class="input-icon-container datepicker">
<md-input-container>
<button [mdDatepickerToggle]="arrivalDatepicker"></button>
<input mdInput
[mdDatepicker]="arrivalDatepicker"
[mdDatepickerFilter]="minArrivalFilter"
formControlName="arrivalDate"
placeholder="Arrival"/>
</md-input-container>
<md-datepicker #arrivalDatepicker flex='auto' [touchUi]="false"></md-datepicker>
</div>
<span *ngIf="formErrors.arrivalDate">{{formErrors.arrivalDate}}</span></div>