如何解决将组件转换为自定义 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 举报,一经查实,本站将立刻删除。