私は提出しています...
機能をリクエストしますか、それともバグを報告しますか?
0以外のインデックスからドラッグスクロールを開始することは可能ですか?
現在の動作は何ですか?
現在、ドラッグスクロールはデフォルトで最初の画像/コンポーネントから開始しています。
行動を変える動機/ユースケースは何ですか?
ドラッグスクロールを開始するインデックスを選択すると便利です(ロード時)。
`ngAfterViewInitブロックでmoveTo
を呼び出すことにより、実際に初期インデックスの設定を実現できます。 必ずsetTimeout(()=> {...}、0);で呼び出しをラップしてください。
例えば:
@ViewChild('nav', {read: DragScrollComponent}) ds: DragScrollComponent;
ngAfterViewInit() {
setTimeout(() => {
this.ds.moveTo(3);
}, 0);
}
すでに試しましたが、残念ながら毎回このエラーが発生します。
core.js:1673 ERROR TypeError: Cannot read property '_elementRef' of undefined
at DragScrollComponent.push../node_modules/ngx-drag-scroll/lib/ngx-drag-scroll.js.DragScrollComponent.maximumIndex (ngx-drag-scroll.js:415)
at DragScrollComponent.push../node_modules/ngx-drag-scroll/lib/ngx-drag-scroll.js.DragScrollComponent.moveTo (ngx-drag-scroll.js:214)
at myComponent.component.ts:141
at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:421)
at Object.onInvokeTask (core.js:3815)
at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:420)
at Zone.push../node_modules/zone.js/dist/zone.js.Zone.runTask (zone.js:188)
at push../node_modules/zone.js/dist/zone.js.ZoneTask.invokeTask (zone.js:496)
at ZoneTask.invoke (zone.js:485)
at timer (zone.js:2054)
ngAfterViewInit
ブロック内で$ moveTo
を呼び出していますか? moveTo
メソッドは、ドラッグスクロールカルーセル要素がページに表示されているときに呼び出すことができます。
または、少し遅延を追加して、次のように再試行することもできます。
setTimeout(() => {
this.ds.moveTo(3);
}, 1000);
それがうまくいくかどうか私に知らせてください。
やった。 しかし、1秒のタイムアウトで動作します! 少しハッキーですが、助けてくれてありがとう。
うーん、コードを見ないと、 ngAfterViewInit
がうまくいかない理由がわかりません。 この機能がなくなるまで、今のところsetTimeout
を使用すると思います。 PRは大歓迎です。
`ngAfterViewInitブロックで
moveTo
を呼び出すことにより、実際に初期インデックスの設定を実現できます。 必ずsetTimeout(()=> {...}、0);で呼び出しをラップしてください。
例えば:@ViewChild('nav', {read: DragScrollComponent}) ds: DragScrollComponent; ngAfterViewInit() { setTimeout(() => { this.ds.moveTo(3); }, 0); }
こんにちは、ドキュメントにこの機能を追加してください。
このソリューションを使用すると、最初のアイテムが特定のアイテムに移動するアニメーションがユーザーに表示されます。
以下に提案します。 大丈夫かと思いますか?
ngAfterViewInit(){
setTimeout(()=>{
this.ds.currIndex = 3;
this.ds._elementRef.nativeElement.children[0].scrollLeft = someValue;
}, 10);
}
最も参考になるコメント
`ngAfterViewInitブロックで
moveTo
を呼び出すことにより、実際に初期インデックスの設定を実現できます。 必ずsetTimeout(()=> {...}、0);で呼び出しをラップしてください。例えば: