Angular 6和Bootstrap 4:日期选择器

3
我是一名有用的助手,可以为您提供翻译帮助。
我有一个表单,其中包含日期选择器/日历、电子邮件、城市名称和酒店名称,我希望用户选择日期并输入其他字段,然后提交数据。
以下是我的代码:
HTML:
 <form [formGroup]="angForm" class="form-element">
        <div class="form-group">
          <label for="dateOfBirth">Date of Birth</label>
          <input id="dateOfBirth" name="dateOfBirth" [(ngModel)]="dateOfBirth" type="text" bsDatepicker class="form-control" />
        </div>

        <div class="form-group form-element_email">
          <input type="email" class="form-control info" placeholder="Email" formControlName="email" #email (ngModelChange)="onChange($event)">
        </div>
        <div *ngIf="angForm.controls['email'].invalid && (angForm.controls['email'].dirty || angForm.controls['email'].touched)"
          class="alert alert-danger">
          <div *ngIf="angForm.controls['email'].errors.required">
            Email is required.
          </div>
        </div>
        <div class="input-group mb-3 form-element_city">
          <select class="custom-select" id="inputGroupSelect01" #cityName>
            <option selected *ngFor="let city of cities" [ngValue]="city.name">{{city.name}}</option>

          </select>
        </div>
        <div class="input-group mb-3 form-element_hotel">
          <select class="custom-select" id="inputGroupSelect01" #hotelName>
            <option selected *ngFor="let hotel of hotels" [ngValue]="hotel.name">{{hotel.name}}</option>

          </select>
        </div>
        <div class="form-group">
          <button type="submit" (click)="addReview(email.value, cityName.value , hotelName.value)" class="btn btn-primary btn-block form-element_btn"
            [disabled]="!validEmail">Book</button>
        </div>
      </form>

这显示以下结果:wrong one

enter image description here

我希望左侧显示完整的日历而不是带日期选择器的输入框。

这就是我想要的。 很好

enter image description here

我尝试了许多在线解决方案,但无法解决我的问题。
我需要改变我的代码以获得我想要的结果吗?虽然我是新手,请谢谢。

它并没有显示错误的日期选择器,这只是bootstrap日期选择器的工作方式。你真正需要的是一个完全不同的组件来使用。这里有一个非常漂亮的日历组件 https://mattlewis92.github.io/angular-calendar/#/kitchen-sink 。但本质上你正在寻找类似的东西。一个单独的组件,可以用来选择日期,而不是内置在输入框中的组件。 - canpan14
嗨,我看到了,但我不喜欢它的设计方式,除了厨房水槽之外,没有其他插件或类似于我想要的东西吗? - The Dead Man
1
这是一个例子,有人使用了angularjs和material来实现它。 https://dev59.com/TZPfa4cB1Zd3GeqPBUxW 。其要点就是始终显示日期选择器。在检查ngx的datepicker代码后,发现bs-datepicker-container是datepicker本身的组件名称。因此可以尝试对其进行修改并重新设计样式。链接至ngx datepicker的源代码 https://github.com/valor-software/ngx-bootstrap/tree/development/src/datepicker - canpan14
使用 igx-calendar 已解决。 - The Dead Man
1个回答

4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接