单击按钮时不会打开模态

时间:2018-04-14 07:25:46

标签: angular bootstrap-4

I am trying to call a modal from another component when I click a button.

这是模态组件的代码:

import { Component, OnInit } from '@angular/core';
import {NgbModal, ModalDismissReasons} from '@ng-bootstrap/ng-bootstrap';
import { FormBuilder } from '@angular/forms';


@Component({
  selector: 'app-modal',
  templateUrl: './modal.component.html',
  styleUrls: ['./modal.component.css']
})
export class ModalComponent implements OnInit {
  closeResult: string;
  constructor(private modalService: NgbModal,private fb:FormBuilder) {}
  open(content) {
    this.modalService.open(content).result.then((result) => {
      this.closeResult = `Closed with: ${result}`;
    }, (reason) => {
      this.closeResult = `Dismissed ${this.getDismissReason(reason)}`;
    });
  }
  private getDismissReason(reason: any): string {
    if (reason === ModalDismissReasons.ESC) {
      return 'by pressing ESC';
    } else if (reason === ModalDismissReasons.BACKDROP_CLICK) {
      return 'by clicking on a backdrop';
    } else {
      return  `with: ${reason}`;
    }
  }
  ngOnInit() {
  }

}

我是使用

从另一个模板调用它

这是模态模板:

<ng-template #content let-c="close" let-d="dismiss">
  <div class="modal-header">
    <h4 class="modal-title">Modal title</h4>
    <button type="button" class="close" aria-label="Close" (click)="d('Cross click')">
      <span aria-hidden="true">&times;</span>
    </button>
  </div>
  <div class="modal-body">
    <p>Modal Body</p>
  </div>
  <div class="modal-footer">
    <button type="button" class="btn btn-secondary" (click)="c('Close click')">Close</button>
  </div>
</ng-template>
<button class="btn btn-lg btn-outline-primary" (click)="open(content)">Launch modal</button>

而且,这就是我在另一个组件中调用模态组件的方式:

<h1>Hello Folks !!!</h1>
      <app-modal></app-modal>

谁能说出什么错了?在此先感谢!!!

3 个答案:

答案 0 :(得分:3)

Java 8+中提供了唯一可以考虑的其他示例,并使用了lambdas。像,

Arrays.asList(array).forEach(System.out::println);

或(来自评论)

Stream.of(array).forEachOrdered(System.out::println);

或(另一个例子)

while

或者您总是可以使用for循环(假设您一般对循环感兴趣,而不是int i = 0; while (i < array.length) { System.out.println(array[i]); i++; } 循环)

 Arrays.stream(array).forEachOrdered(System.out::println);

答案 1 :(得分:3)

试试这个

if (params.blah == 'custom' ) {
    timeout(time: 1, unit: 'minute') { // change to a convenient timeout for you
        userInput = input(
        id: 'Proceed1', message: 'Custom value?', parameters: [
        [$class: 'StringParameterDefinition', defaultValue: '', 
          description: 'Enter Custom value', name: 'Value']
        ])
    }
}

答案 2 :(得分:0)

其他答案显示了利用流库的内部迭代的一些好建议,即您指定“what”并且流库处理“how”。

考虑您当前的代码段;使用forEachforEachOrdered应该可以胜任。但是,如果您要在执行某些数据处理时访问索引,则forEachforEachOrdered将无法满足要求。

当你想要执行一些更复杂的逻辑并且需要索引以及元素时,可能会发生这种情况,或者它可能就像在数组中打印人的名字以及显示它们在数组中的位置一样简单。

在这种情况下,您可以使用IntStrean.range

IntStream.range(0, array.length)
         .forEach(i -> System.out.println(array[i]));