簡體   English   中英

如何處理 Angular Dart 模板中使用的通用類型組件? (材料芯片)

[英]How to deal with generic typed component used in template in Angular Dart? (MaterialChip)

我在使用 itemRendere 和材質芯片時遇到問題。 我所擁有的是

<material-chips >
                <material-chip *ngFor="let chip of data"
                               [value]="chip"
                               [removable]="true"
                               [selectionModel]="dataSelectionModel"
                               [itemRenderer]="dataOptionRenderer"
                >
                </material-chip>
            </material-chips>

在哪里

final SelectionModel<MyType> datasetSelectModel = SelectionModel<MyType>.multi();
List<MyType> get data=>dataSelectionModel.selectedValues.toList();
ItemRenderer<MyType> dataOptionRenderer= ...

所以至於類型安全,一切都很好——通用類型選擇 model 和渲染器是完全一樣的。 然而,這最終會導致錯誤

Expected a value of type '(dynamic) => String', but got one of type '(MyType) => String'

請注意,直接在 material-chips 標簽上使用 selectionModel 和 renderer 會產生相同的結果 - 迫使我使用未類型化的項目渲染器(因為這在兩種情況下都有效)

如何處理angular dart中的這種情況?

您需要在組件上聲明directiveTypes

@Component(
  directiveTypes: [
    Typed<MaterialChipsComponent<MyType>>()
  ],
)

暫無
暫無

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

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