我正在使用angular 2項目中的kendo。在Jquery插件模板中綁定Angular2組件
獲取小部件設置正確是沒有問題的:
ngOnInit() {
let options = inputsToOptionObject(KendoUIScheduler, this);
options.dataBound = this.bound;
this.scheduler = $(this.element.nativeElement)
.kendoScheduler(options)
.data('kendoScheduler');
}
當運行,該插件修改DOM(和,我knowleged,沒有modifiying由angular2維護的影子DOM)。我的問題是,如果我想在插件的任何地方使用組件,就像在模板中一樣,Angular不知道它是否存在,並且不會綁定它。
例子:
public views:kendo.ui.SchedulerView[] = [{
type: 'month',
title: 'test',
dayTemplate: (x:any) => {
let date = x.date.getDate();
let count = this.data[date];
return `<monthly-scheduler-day [date]="test" [count]=${count}"></monthly-scheduler-day>`
}
}];
每月調度天階:
@Component({
selector: 'monthly-scheduler-day',
template: `
<div>{{date}}</div>
<div class="badge" (click)=dayClick($event)>Available</div>
`
})
export class MonthlySchedulerDayComponent implements OnInit{
@Input() date: number;
@Input() count: number;
constructor() {
console.log('constructed');
}
ngOnInit(){
console.log('created');
}
dayClick(event){
console.log('clicked a day');
}
}
是否有一個「正確」的方式綁定微件創建的標記裏面這些組件?我設法通過偵聽來自窗口小部件的綁定事件,然後遍歷它創建的元素並使用DynamicComponentLoader,但感覺不對。