2017-05-12 5 views
0

im angle2でfullcalendarを使用し、slotのOnclickを呼び出すと、CallはCalendarOptionsのコールバック関数に行きます。選択:コールバック関数が呼び出されているが、内部からangle2関数を呼び出そうとしたとき:サービス(this.calenserService.save())がエラーをスローして呼び出す:未定義のプロパティ 'save'を保存できない & eventClick: は基本的に選択ようなコールバック関数内部angular2コンポーネントオブジェクト/メソッドを使用することができないイムangular 2 fullcalendarの使い方

calender.html

<angular2-fullcalendar [options]="calendarOptions"></angular2-fullcalendar> 

calender.component.ts

calendarOptions = { 
    header: 
    { 
     left: '', 
     center: 'title', 
     right: 'month,agendaWeek,agendaDay,today, prev,next ' 
    }, 

    slotDuration:'00:20:00',  
    defaultDate: new Date(), 
    editable: true, 
    eventLimit: true, 
    selectable: true, 
    selectHelper: true, 
    select: function(start, end, allDay) 
    { 
     let event:Event=new Event(); 
     event.id='785'; 
     event.selectable=true; 
     event.start=start; 
     event.title="Test"; 
     event.end=end; 
     **this.calenderService.save(event) // This is Angular2 component object not able to access from here**   
    },  
    eventClick: function(calEvent, jsEvent, view) { 
     alert('Event: ' + calEvent.title); 
     this.callFun() //**This is Angular 2 component function Not able to access** 
    },   
    events:this.events //this.events is Angular2 class object 
}; 

答えて

0

使用矢印機能はthis

eventClick: (calEvent, jsEvent, view) => { 
    alert('Event: ' + calEvent.title); 
    this.callFun(); 
}, 

... 
select: (start, end, allDay) => { 
... 

アロー関数は関数は、それが呼び出された場所ではなく、作成されthisをキャプチャ保持します。

は、サービス・コンポーネントからcalendarOptionsにイベントを追加するためにありがとうねえ、どのように

+0

も参照してください。イベントを更新する方法は私にAngular2の参照を与えることができます。 – Naveen

関連する問題