Angular 2/Ionic 2,扩展Ionic组件解析错误:此元素上匹配了多个组件 怀疑

Angular 2/Ionic 2,扩展Ionic组件解析错误:此元素上匹配了多个组件 怀疑,angular,typescript,ionic2,Angular,Typescript,Ionic2,我开发了一个Ionic 2应用程序,我想为已经部署在Ionic 2中的一些组件创建扩展 例子 例如,我创建ngModule并尝试扩展 但保留了它的功能和与其他离子成分的相互作用。使像一样工作,但更改模板并添加新功能 链接到存在问题的存储库: extended item.ts import { NgModule } from '@angular/core'; import { IonicModule } from 'ionic-angular'; import { BrowserModule }

我开发了一个Ionic 2应用程序,我想为已经部署在Ionic 2中的一些组件创建扩展

例子 例如,我创建ngModule并尝试扩展 但保留了它的功能和与其他离子成分的相互作用。使
一样工作,但更改
模板并添加新功能

链接到存在问题的存储库:
extended item.ts

import { NgModule } from '@angular/core';
import { IonicModule } from 'ionic-angular';
import { BrowserModule } from '@angular/platform-browser';

import { ExtendedItem } from './extended-item';
import { CopyItem } from './copy-item';


@NgModule({
    imports: [
        BrowserModule,
        IonicModule,
    ],
    exports: [
        ExtendedItem,
        CopyItem,
    ],
    declarations: [
        ExtendedItem,
        CopyItem,
    ],
})
export class IonicExtensionModule { }
从'@angular/core'导入{ChangeDetectionStrategy,Component,ElementRef,Renderer,可选,ViewEncapsulation};
从'ionic angular'导入{Config,Form,ItemReorder,Item};
从“./copy item”导入{CopyItem};
@组成部分({
选择器:“扩展离子项”,
模板:
'' +
'' +
'' +
'' +
'' +
'' +
'' +
'' +
'' +
'' +
'' +
'' +
'',
主持人:{
“类”:“项”
},
changeDetection:ChangeDetectionStrategy.OnPush,
封装:视图封装。无,
})
导出类ExtendedItem扩展项{
建造师(
形式:形式,,
config:config,
elementRef:elementRef,
渲染器:渲染器,
@可选()重新排序:ItemReorder
) {
super(表单、配置、elementRef、呈现器、重新排序);
}
}
module.ts

import { NgModule } from '@angular/core';
import { IonicModule } from 'ionic-angular';
import { BrowserModule } from '@angular/platform-browser';

import { ExtendedItem } from './extended-item';
import { CopyItem } from './copy-item';


@NgModule({
    imports: [
        BrowserModule,
        IonicModule,
    ],
    exports: [
        ExtendedItem,
        CopyItem,
    ],
    declarations: [
        ExtendedItem,
        CopyItem,
    ],
})
export class IonicExtensionModule { }
问题 但我得到了这个错误,真的不知道如何解决它

控制台

Unhandled Promise rejection: Template parse errors:
More than one component matched on this element.
Make sure that only one component's selector can match a given element.
Conflicting components: Item,ExtendedItem ("

<ion-content padding>
    [ERROR ->]<ion-item>
            <ion-avatar item-left>
                <ion-icon name="logo-markdown" style="color: #412159" ></ion"): HomePage@7:1
未处理的承诺拒绝:模板分析错误:
此元素上匹配了多个组件。
确保只有一个组件的选择器可以匹配给定的元素。
冲突组件:项,扩展项(“
[错误->]

事实证明,ionic 2 npm模块中存在问题,其中
元数据存储在
项.decorators
对象中,因此当我扩展
时,其元数据也会继承。 因此,我创建了
class-TempItem-extensed-Item
,清除了元数据,然后
class-extenseditem-extensed-TempItem
,它现在就可以工作了

import { ChangeDetectionStrategy, Component, ElementRef, Renderer, Optional, ViewEncapsulation } from '@angular/core';

import { Config, Form, ItemReorder, Item } from 'ionic-angular';

class TempItem extends Item {
    static decorators = undefined;
}

@Component({
    selector: 'extended-ion-item',
    templateUrl: './extended-item.html',
    host: {
        'class': 'item item-block'
    },
    changeDetection: ChangeDetectionStrategy.OnPush,
    encapsulation: ViewEncapsulation.None,
})
export class ExtendedItem extends TempItem {
    constructor(
        form: Form,
        config: Config,
        elementRef: ElementRef,
        renderer: Renderer,
        @Optional() reorder: ItemReorder
    ) {

        super(form, config, elementRef, renderer, reorder);
    }
}

请添加
main.ts
module.ts
componentName.component.ts
的完整代码这是一个暗箱操作,但是
item.ts
有`主机:{'class':'item'},所以可能将主机设置为
host:{'class':'extended item'}
@Mr_Perfect all code to see:;;@suraj将主机设置为
主机:{'class':'extended item'}
没有任何更改与此
项相关的代码
不存在,但已导入。这可能是错误所在。是否有与
复制项
代码相关的代码?