所以我有以下代碼:角2未定義的變種
@ViewChild('MondayPicker') MondayPicker;
@ViewChild('TuesdayPicker') TuesdayPicker;
@ViewChild('WednesdayPicker') WednesdayPicker;
@ViewChild('ThursdayPicker') ThursdayPicker;
@ViewChild('FridayPicker') FridayPicker;
@ViewChild('SaturdayPicker') SaturdayPicker;
@ViewChild('SundayPicker') SundayPicker;
working_days = ['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday'];
simpleColumns;
reservation_times;
currentUser;
private ngUnsubscribe: Subject<any> = new Subject<any>()
ionViewDidEnter(){
for(var i = 0; i < this.working_days.length; i++){
this.firebase.database.list('/schedule',{query: {orderByChild: 'user_day',equalTo: this.currentUser.uid+'_'+this.working_days[i] }})
.take(1)
.subscribe(
(data) => {
console.log(eval('this.'+data[0].day+'Picker.setValue("From 00: 00 TO 00: 00");'));
});
}
}
現在這行:
的console.log(EVAL( '這個' +數據[0]·天+ 'Picker.setValue(「From 00:00 to 00:00」);'));
所以我嘗試做會產生這樣的:this.MondayPicker.setValue("From 00: 00 TO 00: 00");
,但我得到undefined
上this.MondayPicker
例如,但如果我做手工this.MondayPicker.setValue("From 00: 00 TO 00: 00");
它的工作原理,爲什麼會出現這種情況?
謝謝!!發佈它作爲答案,我可以接受它,我是新手,所以我不知道它會起作用。 – Uffo
我懷疑問題的根源在於,當您運行Eval時,評估的腳本具有不同的範圍,並且在該範圍內,'this'不再是您認爲的範圍。 – Ava