0
自分のコンポーネントでjQueryメソッドを呼び出そうとしますが、HTMLレンダリング後にこのメソッドを呼び出すことはできません。私はこの方法で試していました:コンポーネントのjQueryメソッドの呼び出し方法
declare var $: any;
@Component({
selector: 'some-component',
template: `
<div *ngFor="let id of fieldIds" class="form-field">
<input type="text" id="{{id}}" class="form-control"/>
</div>
`
})
export class SomeComponent implements OnInit, AfterViewInit, AfterViewChecked {
fieldIds: string[] = ['abc', 'def', 'ghi'];
constructor() {}
ngOnInit(): void {
console.log($("#def"));
//is undefined
}
ngAfterViewInit(): void {
console.log($("#def"));
//is undefined
}
ngAfterViewChecked(): void {
console.log($("#def"));
//exist, but method is called too many times
}
}
しかし、HTMLレンダリング後に実行されるメソッドだけがngAfterViewCheckedです。それは何度も呼ばれていますが、私はそれを1回だけ呼び出さなければなりません。どうしたらいいですか?
なぜJQueryをそのように使用する必要がありますか? –
私は必要がない、私はする必要があります。 :)それは正確なケースではありません。私はjQuery-UI datepickerをフォームのいくつかの入力(顧客要件)に使用する必要がありますが、フォームは動的(技術的要件)でなければなりません。私は、混合jQueryとangular2はベッドのアイデアだと知っていますが、それは私にとってではありません –