我无法将值传递给子网格。其他所有内容都可以,但是我的输入变量总是未定义。其他人遇到过这个问题吗?我一直在寻找答案,但没有骰子。这是我的主网格声明:
selector: 'app-invoice-matching-grid',
templateUrl: './invoice-matching-grid.component.html',
styleUrls: ['./invoice-matching-grid.component.css'],
template: `
<kendo-grid
[data]="gridView"
[height]="600"
(pageChange)="pageChange($event)"
(dataStateChange)="dataStateChange($event)"
>
<kendo-grid-column >
</kendo-grid-column>
<div *kendoGridDetailTemplate="let dataItem">
<app-invoice-line-items [category]="96"></app-invoice-line-items>
</div>
</kendo-grid>
`
})
这是我的子网格:
import { Component, ViewChild, Input, OnInit } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';
import { GridDataResult, GridComponent, PageChangeEvent } from '@progress/kendo-angular-grid';
import {Invoice, InvoiceLineItem} from 'src/app/invoice-matching-grid/invoice-matching-grid.component'
@Component({
selector: 'app-invoice-line-items',
templateUrl: './invoice-line-items.component.html',
styleUrls: ['./invoice-line-items.component.css'],
template: `
<kendo-grid
[data]="invoices"
[pageSize]="5"
[skip]="skip"
[pageable]="true"
scrollable="none"
(pageChange)="pageChange($event)"
[navigable]="true"
kendoGridFocusable
>
<kendo-grid-column>
</kendo-grid-column>
</kendo-grid>
`
})
export class InvoiceLineItemsComponent implements OnInit {
@Input() public category: string;
public view: Observable<GridDataResult>;
public skip = 0;
public invoices: Invoice[];
constructor(http: HttpClient) {
console.log(this.category);
}
public ngOnInit(): void {
}
}
任何帮助将不胜感激!
答案 0 :(得分:1)
@Input
在构造函数中不可用,您必须使用ngOnInit
钩子
constructor(private http: HttpClient) {}
ngOnInit(): void {
console.log(this.category);
}