Привет, я использую navCtrl для pu sh данных из одного компонента, который является таблицей, и использую navParams для получения данных в другом компоненте, который должен вычислять сумму номеров столбцов в таблице.
Код в первом компоненте : (TableInputComponent)
onTableCellUpdated(updatedTableCell: TableCell) {
//this.logger.info(this.Label + 'onTableCellUpdated updatedTableCell:')
//this.logger.info(updatedTableCell)
// update gridRowJSON first - maintain data structure for displaying table
this.gridRowJSON[updatedTableCell.indexOfGridRowJSON][updatedTableCell.Header] = updatedTableCell.Data1;
//this.logger.info(this.Label + 'onTableCellUpdated this.gridRowJSON:')
//this.logger.info(this.gridRowJSON)
//this.logger.info(this.rows)
// update here to trigger update for table-input-cell
let updatingRow = this.rows[updatedTableCell.rowIndex]
if (updatedTableCell.InputType === this.UI_TYPE_CHECKBOX) {
updatingRow.filter(cell => cell.Header === updatedTableCell.Header)[0].Data1
= updatedTableCell.Data1
updatingRow.filter(cell => cell.Header === updatedTableCell.Header)[0].IsChecked
= updatedTableCell.Data1 === updatedTableCell.InputAttribute.split('_')[0]
// only uncheck other checkbox if selecting checkbox is checked
// prevent coming to this function again when other checkbox is unchecked
if (updatedTableCell.IsChecked && this.Data1) {
updatingRow.filter(cell =>
cell.Header !== updatedTableCell.Header
&& cell.InputType === 'CHECKBOX'
&& cell.InputWritable)
.forEach(cell => {
//this.logger.info(this.Label + 'onTableCellUpdated other CHECKBOX cell:')
//this.logger.info(cell)
cell.Data1 = ''
cell.IsChecked = false
});
}
}
this.Data1 = this.getSubmitJSON()
this.emitUserInput(TableInputComponent, this.Data1);
}
Код во втором компоненте: (CalculatorInputTableComponent)
public tableData: any
constructor(public navParams: NavParams) {
this.tableData = this.navParams.get('tableData')
this.logger.info("data1->", this.tableData)
}
calculate() {
this.logger.info("data2->", this.tableData)
}
Когда я ввожу данные в таблицу, первый компонент передаст данные второму компоненту, поэтому я увидит, что регистратор показывает значение data1, потому что оно было передано в конструктор. Но когда я запускаю функцию «calculate ()», регистратор покажет, что data2 «undefined»
похоже, я не могу получить доступ к параметру «tableData» в конструкторе из метода calculate ().
Кто-нибудь может мне помочь? Спасибо.