如何从 angular 中 class 的编码部分到达模板内的模式 2
How to reach a modal inside a template from the coding part of the class in angular 2
我有一个名为成功模式的组件。我想使用代码部分到达此组件内的 div 。有什么想法可以实现吗?
successModal.component.html
<div bsModal #successModalAccessor="bs-modal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog modal-success" role="document">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Modal title</h4>
<button type="button" class="close" (click)="successModalAccessor.hide()" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<p>One fine body…</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" (click)="successModalAccessor.hide()">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
successModal.component.ts
import { Component } from '@angular/core';
import { ModalModule } from 'ng2-bootstrap/modal';
@Component({
selector:'SuccessModal',
templateUrl: 'successModal.component.html'
})
export class SuccessModalComponent {
showSuccess(){
//i would like to do something like successModalAccessor.show();
}
}
使用 ViewChild
<div class="modal-header" #theDivThatYouWant>
<h4 class="modal-title">Modal title</h4>
<button type="button" class="close" (click)="successModalAccessor.hide()" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
inside the component
@ViewChild('theDivThatYouWant') theDivThatYouWant:ElementRef
theDivThatYouWant 在这种情况下属于 ElementRef
类型,如果您想要实际的 html
元素,您必须说:
myFunctionThatNeedsThatDiv(){
let divElement = this.theDivThatYouWant.nativeElement;
}
我找到了解决方案
我像下面这样使用 viewChild
@ViewChild('successModalAccessor') successModalElement:ModalDirective
并且在函数中
showSuccess(){
this.successModalElement.show();
}
我有一个名为成功模式的组件。我想使用代码部分到达此组件内的 div 。有什么想法可以实现吗?
successModal.component.html
<div bsModal #successModalAccessor="bs-modal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog modal-success" role="document">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Modal title</h4>
<button type="button" class="close" (click)="successModalAccessor.hide()" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<p>One fine body…</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" (click)="successModalAccessor.hide()">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
successModal.component.ts
import { Component } from '@angular/core';
import { ModalModule } from 'ng2-bootstrap/modal';
@Component({
selector:'SuccessModal',
templateUrl: 'successModal.component.html'
})
export class SuccessModalComponent {
showSuccess(){
//i would like to do something like successModalAccessor.show();
}
}
使用 ViewChild
<div class="modal-header" #theDivThatYouWant>
<h4 class="modal-title">Modal title</h4>
<button type="button" class="close" (click)="successModalAccessor.hide()" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
inside the component
@ViewChild('theDivThatYouWant') theDivThatYouWant:ElementRef
theDivThatYouWant 在这种情况下属于 ElementRef
类型,如果您想要实际的 html
元素,您必须说:
myFunctionThatNeedsThatDiv(){
let divElement = this.theDivThatYouWant.nativeElement;
}
我找到了解决方案 我像下面这样使用 viewChild
@ViewChild('successModalAccessor') successModalElement:ModalDirective
并且在函数中
showSuccess(){
this.successModalElement.show();
}