【发布时间】:2017-08-23 20:42:46
【问题描述】:
您好,我正在尝试将选定的值(来自选项)从第一个组件传递到第二个组件,但我无法获取第二个组件中的值。
我目前正在使用服务来执行此操作,并且正在 console.logging everythign 以查看我是否传递了值。
一切都按我的意图加载,直到第二个组件。
下面是我的代码
第一个组件 HTML
<p class="fonts-title"> Select Region</p>
<div class="selectcontainer">
<select (change)="passValue1()" formControlName="region" class="form- control" class="selectionbox" [(ngModel)]="selected_region" required>
<option *ngFor="let region of regions | filterregion" [ngValue]="region">
{{region.areaName}}
</option>
</select>
第一个组件
export class SearchSelectComponent implements OnInit {
constructor(
private passData: TeacherPassDataService) { }
selected_region: string;
passValue1(val1) {
this.passData.setValue1(val1=this.selected_region['areaCode'])
}
服务
@Injectable()
export class TeacherPassDataService {
value1: string;
constructor() {
this.value1="",
}
setValue1(val1: string) {
this.value1 = val1
console.log(this.getValue1()) //this prints selected_region value from the first component as I intented
}
getValue1() {
return this.value1;
}
}
但是,在第二个组件中,
constructor(
private getVal: TeacherPassDataService) {
}
getVal1() {
return this.getVal.getValue1(),
this.firstVal=this.getVal1(),
console.log(this.getVal.getValue1()) //this prints 'undefined'
}
当我使用服务正确设置值时,为什么我在第二个组件中未定义?
请帮忙!
提前谢谢你
【问题讨论】:
-
TeacherPassDataService在哪里设置为提供者? -
我尝试从构造函数中删除 value1="" ,但没有成功!
-
我将 TeacherPassDataService 添加到提供者
-
@Lea as suraj 说你在哪里提供
TeacherPassDataService?喜欢providers: [TeacherPassDataService] -
是的,就是这样!
标签: angular service components