Я пытаюсь использовать свою службу данных в компоненте, но когда я нажимаю кнопку, выдается ошибка и говорится, что служба данных не определена.
Вот мой файл компонента:
export class ProductsComponent implements OnInit {
dataSource: any;
priority: any[];
e: any;
constructor(public dataService: DataService) {
// data source stuff...
}
ngOnInit() {
console.log(this.dataService) //successfully shows DataService object
}
addToCart(e) {
console.log(e.row.data["Task_Subject"]);
console.log(this.dataService) // undefined?!?
this.dataService.addItem(e.row.data["Task_Subject"])
}
}
И HTML-шаблон компонента:
<h2 class="content-block">Products</h2>
<dx-data-grid class="dx-card wide-card" [dataSource]="dataSource" [showBorders]="false" [focusedRowEnabled]="true"
[focusedRowIndex]="0" [columnAutoWidth]="true" [columnHidingEnabled]="true">
<dxo-paging [pageSize]="10"></dxo-paging>
<dxo-pager [showPageSizeSelector]="false" [showInfo]="true"></dxo-pager>
<dxo-filter-row [visible]="true"></dxo-filter-row>
<dxi-column dataField="Task_ID" [width]="90" [hidingPriority]="2">
</dxi-column>
<dxi-column dataField="Task_Subject" [width]="190" caption="Subject" [hidingPriority]="8">
</dxi-column>
<dxi-column dataField="Task_Status" caption="Status" [hidingPriority]="6">
</dxi-column>
<dxi-column dataField="Task_Priority" caption="Priority" [hidingPriority]="5">
<dxo-lookup [dataSource]="priority" valueExpr="value" displayExpr="name">
</dxo-lookup>
</dxi-column>
<dxi-column dataField="ResponsibleEmployee.Employee_Full_Name" caption="Assigned To" [allowSorting]="false"
[hidingPriority]="7">
</dxi-column>
<dxi-column caption="Actions" type="buttons" [hidingPriority]="0">
<dxi-button icon="plus" [onClick]="addToCart">Action</dxi-button>
</dxi-column>
</dx-data-grid>
Когда я нажимаю кнопку «dxi-button», запускается функция addToCart(). В функции ngOnInit служба данных отображается, но в функции addToCart служба данных ведения журнала консоли дает мне неопределенное значение.
Что я делаю не так? Кстати, я использую DevExtreme.
()
для привязки событий. Я предполагаю, что они неправильно устанавливают «это», console.log «это» и смотрят, что это такое. документы - person Jason Goemaat   schedule 20.10.2020