类型';可观察<&燃气轮机';Angular Nativescript中缺少属性

类型';可观察<&燃气轮机';Angular Nativescript中缺少属性,angular,typescript,http,nativescript,angular2-nativescript,Angular,Typescript,Http,Nativescript,Angular2 Nativescript,当它将我的函数设置为getCalendarEvents():Observable{时,我遇到了这个问题。错误消息显示,类型“Observable”缺少类型“CalendarEvent[]”中的以下属性:长度、弹出、推送、concat和24个以上。 这是服务台 getCalendarEvents(): Observable<Array<CalendarEvent>>{ var listCal:any = [] return this.ge

当它将我的函数设置为
getCalendarEvents():Observable{
时,我遇到了这个问题。错误消息显示,
类型“Observable”缺少类型“CalendarEvent[]”中的以下属性:长度、弹出、推送、concat和24个以上。

这是服务台

getCalendarEvents(): Observable<Array<CalendarEvent>>{
         var listCal:any = []
         return this.getCalendarData().pipe(map((data: any) => {
          listCal = data;
        console.log('list cal', listCal)
             let startDate: Date,
             endDate: Date,
             event: CalendarEvent;
             let colors: Array<Color> = [new Color(200, 188, 26, 214), new Color(220, 255, 109, 130), new Color(255, 55, 45, 255), new Color(199, 17, 227, 10), new Color(255, 255, 54, 3)];
             let events: Array<CalendarEvent> = new Array<CalendarEvent>();
             for (let i = 1; i < listCal.length; i++) {
                  event = new CalendarEvent(listCal[i].title, new Date(listCal[i].date), new Date(listCal[i].date), false, colors[i * 10 % (listCal[i].colour.length - 1)]);    

                  events.push(event);     
              }
             return events;
            }));          
    }
getCalendarEvents():可观察{
var listCal:any=[]
返回此.getCalendarData().pipe(映射((数据:any)=>{
listCal=数据;
console.log('listCal',listCal)
让我们开始日期:,
结束日期:日期,
事件:日历事件;
let colors:Array=[新颜色(20018826214),新颜色(220255109130),新颜色(255,55,45255),新颜色(19917227,10),新颜色(255,255,54,3)];
let事件:数组=新数组();
for(设i=1;i
在service.ts中,错误未显示,但由于声明我在日历组件中面临上述错误,即:

import { Component, OnInit } from '@angular/core';

import { calendarApiService } from './service/api.service';
import { CalendarClass } from './classes/calendarClass';
import { RadCalendar, CalendarEvent, CalendarSelectionEventData } from "nativescript-ui-calendar";

@Component({
  selector: 'ns-calendar',
  templateUrl: './calendar.component.html',
  styleUrls: ['./calendar.component.css'],
  moduleId: module.id,
  providers: [calendarApiService]
})
export class CalendarComponent implements OnInit {

  constructor(private _calendarApiService: calendarApiService) {
    //console.log("hi");

   }
   private _events: Array<CalendarEvent>;
   private _listItems: Array<CalendarEvent>;

   listOfCalendar: CalendarClass[];




get eventSource() {
    return this._events;
}

get myItems(): Array<CalendarEvent> {
    return this._listItems;
}

set myItems(value) {
    this._listItems = value;
}

// ngOnInit() {
//     this._events = this._calendarService.getCalendarEvents();
// }


ngOnInit() {

  this._events = this._calendarApiService.getCalendarEvents();


  this._calendarApiService.getCalendarData() 
  .subscribe( 
  (data:any)=>{ 
  this.listOfCalendar = data; 
  } 
  );

  //console.log(this.listOfCalendar);

}

onDateSelected(args: CalendarSelectionEventData) {
    const calendar: RadCalendar = args.object;
    const date: Date = args.date;
    const events: Array<CalendarEvent> = calendar.getEventsForDate(date);


    this.myItems = events;
}


}
从'@angular/core'导入{Component,OnInit};
从“./service/api.service”导入{calendarApiService};
从“./classes/CalendarClass”导入{CalendarClass};
从“nativescript ui日历”导入{RadCalendar、CalendarEvent、CalendarSelectionEventData};
@组成部分({
选择器:“ns日历”,
templateUrl:“./calendar.component.html”,
样式URL:['./calendar.component.css'],
moduleId:module.id,
提供者:[日历服务]
})
导出类CalendarComponent实现OnInit{
构造函数(private\u calendarApiService:calendarApiService){
//控制台日志(“hi”);
}
私有事件:数组;
私有列表项:数组;
listOfCalendar:CalendarClass[];
获取eventSource(){
返回此。\u事件;
}
获取myItems():数组{
返回此。\u列表项;
}
设置myItems(值){
这。_listItems=值;
}
//恩戈尼尼特(){
//this.\u events=this.\u calendarService.getCalendarEvents();
// }
恩戈尼尼特(){
this.\u events=this.\u calendarApiService.getCalendarEvents();
这是.\u calendarApiService.getCalendarData()
.订阅(
(数据:任意)=>{
this.listOfCalendar=数据;
} 
);
//console.log(this.listOfCalendar);
}
onDateSelected(参数:CalendarSelectionEventData){
常量日历:RadCalendar=args.object;
const date:date=args.date;
常量事件:数组=calendar.getEventsForDate(日期);
this.myItems=事件;
}
}

使用
from
操作符将数组转换为可观察数组

return from(events);

您应该从方法中返回
数组
,或者不指定任何类型。当您尝试将数组分配给
可观察时{
listCal=数据;
console.log('listCal',listCal)
让我们开始日期:,
结束日期:日期,
事件:日历事件;
let colors:Array=[新颜色(20018826214),新颜色(220255109130),新颜色(255,55,45255),新颜色(19917227,10),新颜色(255,255,54,3)];
let事件:数组=新数组();
for(设i=1;i
找不到名称“发件人”。什么是代码表单导入我的方法已经在
getCalendarEvents():可观察的
我将在哪里写入
从(事件)返回的内容在服务中。ts?是。从操作员导入
import{from}from'rxjs'
导入from时,整个方法行返回错误<代码>类型“Observable”不可分配给类型“Observable”。类型“Observable”缺少类型“CalendarEvent[]”中的以下属性:长度、pop、push、concat和其他24个属性。
如果可能,是否可以创建游乐场?这将更容易调试。是否可以在stackoverflow中创建游乐场?我不明白你的问题!我在这行
this.\u events=this.\u calendarApiService.getCalendarEvents()中遇到错误使用它来显示代码。您可以使用NS预览应用程序在任何设备上运行。当您选择模板并进行编辑时,它将显示“保存”按钮。保存后,您可以看到URL中的更改,您可以复制该更改,例如@NarendraMongiya立即检查!当我使用这个代码时,它仍然给我同样的错误<代码>类型“Observable”缺少类型“CalendarEvent[]”中的以下属性:长度、弹出、推送、concat和其他24个。
因为您返回的是可观察的“return”this.getCalendarData().pipe(map((data:any)。请尝试删除它,就像这样?
返回此.getCalendarData().subscribe((data:any)=>{}
getCalendarEvents(){
         var listCal:any = []
         this.getCalendarData().pipe(map((data: any) => {
          listCal = data;
        console.log('list cal', listCal)
             let startDate: Date,
             endDate: Date,
             event: CalendarEvent;
             let colors: Array<Color> = [new Color(200, 188, 26, 214), new Color(220, 255, 109, 130), new Color(255, 55, 45, 255), new Color(199, 17, 227, 10), new Color(255, 255, 54, 3)];
             let events: Array<CalendarEvent> = new Array<CalendarEvent>();
             for (let i = 1; i < listCal.length; i++) {
                  event = new CalendarEvent(listCal[i].title, new Date(listCal[i].date), new Date(listCal[i].date), false, colors[i * 10 % (listCal[i].colour.length - 1)]);    

                  events.push(event);     
              }
             return events;
            }));          
    }