Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 如何有条件地操作“@input”_Angular - Fatal编程技术网

Angular 如何有条件地操作“@input”

Angular 如何有条件地操作“@input”,angular,Angular,我通过@Input()获取值-我需要使用迭代器进行操作,如何操作 这是我的密码: @Input() events: Observable<Array<CalendarEvent>>; //required manipulation @Input() currentEvent: ModelEvent; clickedDate: Date; constructor(private calendarService:CalendarService) { } ngOnInit

我通过
@Input()
获取值-我需要使用迭代器进行操作,如何操作

这是我的密码:

@Input() events: Observable<Array<CalendarEvent>>; //required manipulation
@Input() currentEvent: ModelEvent;

clickedDate: Date;

constructor(private calendarService:CalendarService) { }

ngOnInit() {
    const headerHeight = $('.site-header').outerHeight();
    //moving content down to header
    $('body').css({paddingTop: headerHeight});

    this.calendarService.eventId.subscribe(event => {
        this.eventId = event.id;
        this.setViewDate();
    })

    // this.events.subscribe(data => console.log('data', data));

    if(this.events.length) { //how to do? //at present getting error
        <!-- do something -->
    }
}
@Input()事件:可观察//必要的操作
@Input()currentEvent:ModelEvent;
单击日期:日期;
构造函数(专用calendarService:calendarService){}
恩戈尼尼特(){
const headerHeight=$('.site header').outerHeight();
//将内容向下移动到标题
$('body').css({paddingTop:headerHeight});
此.calendarService.eventId.subscribe(事件=>{
this.eventId=event.id;
此参数为.setViewDate();
})
//订阅(data=>console.log('data',data));
如果(this.events.length){//怎么办?//目前获取错误
}
}

您不能询问可观察对象的长度,因此会得到一个错误。相反,您应该订阅if语句,然后将其移动到回调函数中,这样您就可以使用事件的值来执行您想要执行的操作。

您能详细解释一下您得到的错误以及您想要执行的操作吗?我是从父组件获取事件的,当子组件中的事件可用时,我需要在每个事件中添加id并传递给Template您是否也可以发布calendarService的代码?@dileepkumarjami-没有服务,从父级获取价值。家长从
ngrx/store
获取它-您似乎对
rxjs
中的
可观察的
类有错误的理解。在继续之前,您可能需要查看一些关于它的文档获取错误作为
this.events.subscribe不是一个函数
-有什么想法吗?您确定要给组件一个可观察的作为输入吗?这是我的代码
您使用的是异步管道,因此您没有注入可观察的,而是实际的数组。只需删除输入类型中可观察的部分,就可以开始了。这样,您就可以直接处理事件,而不必在组件中订阅。您的输入变成:input()事件:数组;