簡體   English   中英

Angular 組件:擴展 class 的實例似乎被覆蓋

[英]Angular components: instance of extended class seems to get overwritten

在我的 angular 8 項目中,我有一個 class(只是一個 class,未作為組件實現),它提供了一些默認配置和方法。

這個 class 被多個組件擴展。 如果同一視圖上的多個組件(即同時存在)擴展 class,它們的實例似乎會相互覆蓋。 如果我覆蓋其中一個組件中的屬性或方法,然后另一個組件被實例化,則覆蓋消失。

我不知道為什么會這樣。 擴展 class 的構造函數被多次調用,因此理論上,每個擴展 class 都應該創建自己的實例。

更新

我在這個 StackBlitz 演示中重現了這個問題: https://stackblitz.com/edit/angular-hw1cv9

ListComponent 和 PopupComponent 都擴展了 DataGridComponent。 在 ListComponent 中,我在模板中啟用了導出功能並且始終有效。 我還覆蓋了 onExporting 事件處理程序。 如果您注釋掉彈出窗口(或阻止使用 *ngIf="popupVisible" 創建它),此覆蓋工作正常,但它會按原樣恢復到彈出窗口的原始功能。

(我不知道如何在演示中顯示 devextreme 圖標,抱歉。導出按鈕在表格上方的左側)。

使用解決方案更新了演示

您正在設置 DataGrid Object 本身的 defaultOptions。 任何繼承您的組件或從其他地方導入 DataGrid 的 Class 都將是您在 DataGridComponents 構造函數中設置的配置。

您確定要直接將 defaultOptions 分配給 DataGrid Object 嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM