微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将组件转换为自定义 Angular 表单控件?

如何解决将组件转换为自定义 Angular 表单控件?

我有 3 个选择列表,用于选择日、月和年的日期。这是该方法stackblitz

另一方面,我正在尝试将此组件转换为 Creating a custom Angular form control 上的自定义 Angular 表单控件,但无法使它们正常工作。那么,我的定义有什么问题?

def search(request):
    query=request.GET.get('q')
    if query:
        queryset = (Q(adm__exact=query))
        result = Mymodel.objects.filter(queryset).distinct()
    return render(request,'h.html',{'result':result}

我无法正确匹配 export class DateSelectComponent implements ControlValueAccessor { date: Date = new Date(); get Date() { return this.date; } @input() set Date(value: Date) { this.date = value; this.DateChange.emit(this.date); this.setDate(); } @Output() public DateChange: EventEmitter<Date> = new EventEmitter<Date>(); isdisabled = false; // we store the two callbacks that Angular gives us // we also provide defaults so that our component can be used standalone onChange: (value: Date) => void = () => {}; onTouched: Function = () => {}; allDates: number[] = []; dates: number[] = []; months: number[] = []; years: number[] = []; thirtyDaysMonths: number[] = [4,6,9,11]; selectedDate: number; selectedMonth: number; selectedYear: number; constructor(private cdRef: ChangeDetectorRef) { populateDateLists(); } populateDateLists() { // code omitted fo brevity } setDate() { this.selectedDate = this.date.getDate(); this.selectedMonth = this.date.getMonth() + 1; this.selectedYear = this.date.getFullYear(); this.setDates(); } isLeapYear() { // code omitted fo brevity } dateChanged(value) { this.Date = new Date(this.selectedYear,this.selectedMonth - 1,value); } setDates() { // code omitted fo brevity } monthChanged(value) { // code omitted fo brevity } yearChanged(value) { // code omitted fo brevity } // I THINK THE FOLLOWING PARTS WILL BE FILLED PROPERLY,BUT HOW? >>> writeValue(value: Date) { this.date = value; } onInputChange(value) { const valueChanged = value !== this.date; if (valueChanged) { this.date = value; //this.onChange(value); //??? //this.change.emit(value); //??? } } registerOnChange(fn: any) { this.onChange = fn; } registerOnTouched(fn: any) { this.onTouched = fn; } setdisabledState(disabled: boolean) { this.isdisabled = disabled; } } onInputChange 方法

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。