0
は私がカスタムを選択ディレクティブを作成しているとあなたがオプションに入り込むこのディレクティブの中にはHTMLに基づいて選択したオプションを見つけるために$ ionicpositionを使用する必要があります開いているモーダルで初めて正しい値を設定します要素IDを作成し、$ ionicscroll delegateを使用してスクロールします。
このオプションを見つけ関数であり、それにスクロール:scrollTo関数が呼び出される場合
private scrollToOption(selectedCode: activeh.objects.ICode): void {
this.$timeout(() => {
let item: HTMLElement = document.getElementById("code-" + selectedCode.CodeID);
if(item){
var itemPosition = this.$ionicPosition.offset(angular.element(item));
this.$ionicScrollDelegate.$getByHandle('modalContent').scrollTo(0, itemPosition.top + 40, false);
}
}, 200);
}
これは、次のとおりです。タイトルに言及した
private createModal(): void {
this.$ionicModal.fromTemplateUrl('app/shared/directives/selectoption/selectoption.modal.html', {
scope: this.$scope,
hardwareBackButtonClose: false
}).then((modal) => {
this.selectModal = modal;
this.selectModal.show();
if (this.selectedVal !== undefined) {
this.scrollToOption(this.selectedVal);
}
});
}
そうのように、このコードは完全に機能しますが、モーダルが初めて開かれたときだけです。モーダルを閉じて再び開いた後、$ ionicposition.offsetは0の値しか返しません。
それは多分あなたはキャッシュを無効にする必要があること、イオン性でキャッシュ上のいくつかの研究を行います。それはリフレッシュされているように見える、それを停止する必要があります。 – Ramonster