1

我们有一个带有 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>
4

1 回答 1

0

flex-layout 是一个响应式模板,对于不同的视口和设备有不同的风格。这意味着如果您的设置有细微的变化,例如兼容模式或不同的浏览器,类可能会发生变化。话虽如此,UI 行为应该是相同的。

于 2017-06-23T12:48:20.303 回答