我想通过扩展 ionic2 创建自定义表单输入组件BaseInput
。但是它没有渲染,我在 DOM 上找不到它。
import { Component, ElementRef, OnDestroy, Optional, Renderer,
ViewEncapsulation } from "@angular/core";
import { Config, Form, Item } from "ionic-angular";
import { BaseInput } from "ionic-angular/util/base-input";
import { NG_VALUE_ACCESSOR } from "@angular/forms";
@Component({
selector: 'my-checkbox',
template:
'<p>aaaaa</p>',
host: {
'[class.checkbox-disabled]': '_disabled'
},
providers: [ { provide: NG_VALUE_ACCESSOR, useExisting: MyCheckboxComponent, multi: true } ],
encapsulation: ViewEncapsulation.None,
})
export class MyCheckboxComponent extends BaseInput<any> implements OnDestroy {
constructor(form: Form, config: Config, elementRef: ElementRef, renderer: Renderer, @Optional() item: Item) {
super(config, elementRef, renderer, 'my-checkbox', [], form, item, null);
}
}
代码是从src/component/checkbox/checkbox.ts
复制的,并进行一些更改。
我遇到了同样的问题。我的组件没有在父元素中呈现<ion-item>
。我通过添加item-content
指令来修复它
<ion-item>
<ion-label>Label</ion-label>
<my-checkbox item-content></my-checkbox>
</ion-item>