扩展剑道Angular 2 UI组件,并使用所有剑道组件功能创建我们自己的组件包装器
我想创建一个角度2组件,它可以将剑道组件与其他组件包裹在一起 类似于my-Component.Component.html下面的内容扩展剑道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><
<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>