繁体   English   中英

Angular jqxSchedular source localData Can't bind from remote

[英]Angular jqxSchedular source localData Can't bind from remote

我正在尝试将 jqxSchedular 用于我的 web 应用程序。

计划无法从远程数据绑定。

这是我的 Angular 组件

export class CourseScheduleComponent implements OnInit {

  appointmentDataFields: any =
  {
      from: "start",
      to: "end",
      description: "description",
      subject: "subject",
      resourceId: "calendar"
  };

 source = {
    dataType: "array",
    dataFields: [
        { name: 'id', type: 'string' },
        { name: 'description', type: 'string' },
        { name: 'subject', type: 'string' },
        { name: 'calendar', type: 'string' },
        { name: 'start', type: 'date' },
        { name: 'end', type: 'date' }
    ],
    localData: []
}

  resources: any = 
  {
      colorScheme: "scheme04",
      dataField: "calendar",
      source: new jqx.dataAdapter(this.source)
  };

  dataAdapter: any;
  date: any = new jqx.date();

  views: string[] | any[] =
  [
      'dayView',
      'weekView',
      'monthView',
      'agendaView'
  ];

  constructor(private repository: RepositoryService,private router: Router,
    private activeRoute: ActivatedRoute ) { } 

  ngOnInit() {
      this.getCourseSchedules().subscribe(res=>{
      this.source.localData = res as CourseSchedule[];
    },err=>{
      console.log(err);
    });
      this.dataAdapter = new jqx.dataAdapter(this.source)
  }

  getCourseSchedules()
  {
    var courseId : string = this.activeRoute.snapshot.params['id'];
    var apiUrl = `/api/course/schedule?courseId=${courseId}`;
    return this.repository.getData(apiUrl).pipe(
        map(data => {
            let schedules = data as CourseSchedule[];
            let newSchedules:CourseSchedule[] = [];
            schedules.forEach((schedule) => {
                const {start,end,...other} = schedule;
                newSchedules.push(<CourseSchedule>{
                    start: new Date(start),
                    end: new Date(end),
                    ...other
                })
            });
            return newSchedules;
        })
    );

  }

}

当我调试 ngOnInit 时,设置 localData 没有问题。 但是当我查询日志源时,它显示本地数据是localdata

我找不到 Angular jqxSchedular 的远程数据绑定示例。

所以,基本上它适用于本地数据,但在远程它不起作用。

请帮助解决这个问题。

您必须使用 addAppointment 方法从 jqx 组件中添加它们,如下所示:

getCourseSchedules()
{
    let self = this;
    var courseId : string = this.activeRoute.snapshot.params['id'];
    var apiUrl = `/api/course/schedule?courseId=${courseId}`;
    return this.repository.getData(apiUrl).pipe(
        map(data => {
            let schedules = data as CourseSchedule[];
            let newSchedules:CourseSchedule[] = [];
            schedules.forEach((schedule) => {
                const {start,end,...other} = schedule;

                var appointment = {
                 start: new Date(start),
                 end: new Date(end),
                 ..other
                };

                self.myScheduler.addAppointment(appointment);

            });
        })
    );
}

有关详细信息,请参阅API

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM