tam*_*koe 1 ng-bootstrap angular
我想做原始的事情-将方法保存到我的模态。我这样做:
@Component({
selector: 'ngbd-modal-content',
template: `
<div class="modal-header">
<h4 class="modal-title">Hi there!</h4>
<button type="button" class="close" aria-label="Close" (click)="activeModal.dismiss('Cross click')">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<input [(ngModel)]="name"/>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-success" (click)="save()">Save</button>
<button type="button" class="btn btn-outline-dark" (click)="activeModal.close('Close click')">Close</button>
</div>`
})
export class NgbdModalContent {
@Input() name;
@Output() action; //Actually I can use @Input or nothing
constructor(public activeModal: NgbActiveModal) {}
save() {
this.action(this.name)
}
}
@Component({
selector: 'ngbd-modal-component',
templateUrl: 'src/modal-component.html',
providers: [HttpClient]
})
export class NgbdModalComponent {
constructor(private modalService: NgbModal, private http: HttpClient) {}
open() {
const modalRef = this.modalService.open(NgbdModalContent);
modalRef.componentInstance.name = 'World';
modalRef.componentInstance.action = this.save.bind(this); //bind!!!
}
save(name) {
console.log(name)
this.http.get('https://api.github.com/users?page=1&per_page=10').subscribe(data => {
console.log(data)
})
}
}
Run Code Online (Sandbox Code Playgroud)
它有效,但看起来不是最好的方法。我必须为保存方法绑定它。它不清楚。也许有更好的方法?
1) 删除:
@Output() action; //Actually I can use @Input or nothing
2)删除:
modalRef.componentInstance.action = this.save.bind(this); //bind!!!
3)保存功能关闭此模式的结果(为您命名,但您可以使用表单对象)
save() {
this.activeModal.close(name);
}
Run Code Online (Sandbox Code Playgroud)
4)在调用者上添加回调:
// close action is result
// dismiss action is reason
open() {
const modalRef = this.modalService.open(NgbdModalContent);
modalRef.componentInstance.name = 'World';
modalRef.result.then((result) => {
this.save(result);
}, (reason) => {
console.log('Dismissed action: ' + reason);
});
}
save(user) {
console.log('save action: ' + user);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2744 次 |
| 最近记录: |