【问题标题】:Modal doesn't oppend on page load模态不会在页面加载时打开
【发布时间】:2020-11-15 23:21:41
【问题描述】:

亲爱的,我有一个问题,我想在首次访问加载时进行模态附加 我必须用 HTML 编写下面的代码

            <button type="button" id="openModal" (click)="getstores()" #openModal
                class="btn btn-outline-dark btn-sm ml-2" data-toggle="modal" data-target="#staticBackdrop">
                Choose Branch
            </button>

            <!-- Modal -->
            <div class="modal fade" id="staticBackdrop" data-backdrop="static" data-keyboard="false" tabindex="-1"
                aria-labelledby="staticBackdropLabel" aria-hidden="true">
                <div class="modal-dialog modal-dialog-centered">
                    <div class="modal-content">
                        <div class="modal-header">
                            <h5 class="modal-title" id="staticBackdropLabel">Choose your nearset branch 
                                <i class="fa fa-smile-wink"></i>
                            </h5>
                            <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                                <span aria-hidden="true">&times;</span>
                            </button>
                        </div>
                        <div class="modal-body">
                            <div class="form-check form-check-inline" *ngFor="let d of data">
                                <input class="form-check-input" type="radio" name="store" id="inlineRadio1" (change)="radioChangeHandler($event)" value="{{d.name}}" >
                                <label class="form-check-label" for="inlineRadio1">{{d.name}}</label>
                              </div>
                              
                        </div>
                        <!-- <div class="modal-footer">
                            <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
                            <button type="submit" class="btn btn-primary">Understood</button>
                        </div> -->
                    </div>
                </div>
            </div> 

在 TS 中:-

'''

import { Component, OnInit, ElementRef, ViewChild } from '@angular/core';
import { StoresService } from '../shared/stores.service';

@Component({
  selector: 'app-header-bar',
  templateUrl: './header-bar.component.html',
  styleUrls: ['./header-bar.component.css']
})
export class HeaderBarComponent implements OnInit {
  @ViewChild('openModal') openModal:ElementRef;
  data : Array<any>;

  constructor(private service : StoresService) {
    this.data = new Array<any>();
   }

  ngOnInit() {
    this.openModal.nativeElement.click();
    alert("Hi");
  }

  getstores(){
    this.service.getStores().subscribe(data=>{
      this.data = data;
    });
  }
  
  radioChangeHandler(event : any){
    this.data = event.target.value;
    localStorage.setItem("store",JSON.stringify(this.data));
  }
}

仍然无法工作,请任何人帮助我,因为我想强制用户在浏览我的网站之前选择一个选项, 我曾在另一篇文章中尝试过一些方法,从堆栈溢出但没有奏效。

【问题讨论】:

  • 你在entryComponents中添加了modal组件吗?

标签: angular angular-ui-bootstrap


【解决方案1】:

ngOnUnit 没有看到 ViewChild 元素,您需要在 AfterViewInit 中执行此操作

export class HeaderBarComponent implements OnInit,AfterViewInit {

ngAfterViewInit() {
    this.openModal.nativeElement.click();
    alert("Hi");
  }

【讨论】:

    猜你喜欢
    • 2019-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多