扩展剑道Angular 2 UI组件,并使用所有剑道组件功能创建我们自己的组件包装器

扩展剑道Angular 2 UI组件,并使用所有剑道组件功能创建我们自己的组件包装器,angular,kendo-ui,kendo-ui-angular2,Angular,Kendo Ui,Kendo Ui Angular2,我想创建一个角度2组件,它可以将剑道组件与其他组件包裹在一起 类似于my-Component.Component.html下面的内容 <div class="my-component-wrapper"><br /> <label>{{label}}<br /> <mytooltipComp></mytooltipComp><br /> </label><

我想创建一个角度2组件,它可以将剑道组件与其他组件包裹在一起

类似于my-Component.Component.html下面的内容

 <div class="my-component-wrapper"><br />
      <label>{{label}}<br />
        <mytooltipComp></mytooltipComp><br />
      </label><br />
    <kendo-dropdownlist<br />
        [data]="data"<br />
        [defaultItem]="defaultItem"<br />
        [textField]="'text'"<br />
        [valueField]="'value'"<br />
        [valuePrimitive]="true"<br />
        (ngModelChange)="updateData($event)"<br />
        (selectionChange)="handleSelection($event)"><br />
    </kendo-dropdownlist><br />   
   <div *ngIf="_dropdownControl.valid == false || this.value==null"><br />
        <p *ngIf="errorMsgShow">{{errorMsg}}</p><br />
      </div><br />
    </div><br />      
现在要使用剑道组件属性,我需要在wrapper.ts文件中重新定义相同的属性 e、 g.@输入(“数据”)数据:任何

要使用扭曲的组件,我需要以下代码

<my-Component
               [data]="genders"
               [label]="'mylable'"
               [isValidate]=true
               [showError]=true>
</my-Component>

我的问题是

由于[data]已经是剑道的属性,我不想在wrapper.ts中重新定义

另外,包装现有剑道组件不允许我设置其他剑道相关属性,如筛选等。为此,我需要在wrapper.ts组件中再次定义相同的属性


有什么方法可以在我的包装器中使用剑道的全部功能吗?

一旦您决定在包装器中嵌入剑道组件,您就可以将剑道组件从页面模板中隔离出来,因此除了通过包装器传输属性外,您别无选择

如果数据来自包装器外部,则需要在包装器中定义
@Input()
数据。 但是您也可以查询API来填充数据,这可以在包装器中完成

另外,请查看CustomValueAccessor,如果希望它与Angle Forms集成并管理ngModel,则需要在自定义控件中实现它

您还可以通过创建基本下拉组件(它将执行ControlValueAccessor实现并管理基本逻辑)并为您需要的每种类型的下拉列表扩展它,从继承中获益

<my-Component
               [data]="genders"
               [label]="'mylable'"
               [isValidate]=true
               [showError]=true>
</my-Component>