【发布时间】:2018-06-21 09:32:59
【问题描述】:
我有一个只有模态的组件和另一个具有按钮 Edit position 的组件,单击该按钮会打开模态组件。选择位置后,模态关闭,所选值必须发送到打开它的组件上的输入元素。有人可以帮我了解如何将选定的值从模态传递到另一个组件的输入吗?
html:
<div class="form-group form-black">
<label class="control-label">Position<label style="color:red;">*</label></label>
<div class="input-group">
<input type="text" class="form-control" id="spr_position_id" #spr_position_id='ngModel' name="spr_position_id" [(ngModel)]="user.spr_position_id" required>
<span type="submit" class="input-group-addon btn btn-info" (click)="onOpenModule();">Edit position</span>
</div>
</div>
modal.html:
<div class="card">
<div class="card-header">
<h4 class="title">Select a position</h4>
</div>
<div class="row">
<div class="card-content table-responsive ">
<div class="col-md-12">
<div class="form-group form-black label-floating ">
<input placeholder="Search…" type="text" [(ngModel)]="term" class="form-control" >
</div>
</div>
<div class="col-md-12">
<table class="table table-hover">
<thead>
<tr>
<th [class.active]="key === 'name'" (click)="setOrder('name')"><b>Position<span [hidden]="reverse">▼</span><span [hidden]="!reverse">▲</span></b></th>
</tr>
</thead>
<tbody>
<tr *ngFor="let spr_position of spr_positions | orderBy: key:reverse | filter:term">
<td>{{spr_position.name}} </td>
</tr>
</tbody>
</table>
</div>
<div class="col-md-12">
<button type="submit" (click)="cancel();" class="btn btn-warning pull-left">Close</button>
<button type="submit" class="btn btn-info pull-right">Choose</button>
</div>
</div>
</div>
</div>
modal.ts:
import { Component, OnInit } from '@angular/core';
import { DialogRef, ModalComponent } from 'angular2-modal';
import { BSModalContext } from 'angular2-modal/plugins/bootstrap';
import { SprPositionService} from '../../../services/spr-position/spr-position.service';
import { SprPosition } from '../../../models/spr-position.model';
import { Angular2TokenService } from "angular2-token";
import { OrderPipe } from 'ngx-order-pipe';
declare let moment: any;
@Component({
selector: 'app-spr-position-modal',
templateUrl: './spr-position-modal.component.html',
styleUrls: ['./spr-position-modal.component.scss'],
providers: [SprPositionService]
})
export class SprDolgModalComponent implements ModalComponent<any> {
spr_positions: Array<SprDolg>;
key = 'name';
reverse = false;
constructor(
public dialog: DialogRef<any>,
private orderPipe: OrderPipe,
public authTokenService: Angular2TokenService,
private servSprPosition: SprPositionService
) {
this.spr_positions = new Array<SprPosition>();
}
ngOnInit() {
this.loadSprPositions();
}
private loadSprPositions() {
this.servSprPosition.getSprPositions().subscribe((data: SprPosition[]) => {
this.spr_positions = data;
});
}
setOrder(key) {
this.key = key;
this.reverse = !this.reverse;
}
cancel(): void {
this.dialog.close(null);
}
}
【问题讨论】:
-
对我来说,听起来您想将一些数据从子组件传递给父组件。您是否尝试使用
@Output()?(EventEmitter) -
不,我现在尝试使用@Output()
-
我通过创建一个弹出服务来处理这个问题,该服务允许我通过路由调用模态组件,您可以在其中初始化模态并将数据分配给模态组件
标签: angular