質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Angular

Angularは、JavaScriptフレームワークです。AngularJSの後継であり、TypeScriptベースで実装されています。機能ごとに実装を分けやすく、コードの見通しが良いコンポーネント指向です。

Q&A

2回答

3544閲覧

Angular2-5でビューの描画がすべて終わってから処理をしたい

kenk

総合スコア13

Angular

Angularは、JavaScriptフレームワークです。AngularJSの後継であり、TypeScriptベースで実装されています。機能ごとに実装を分けやすく、コードの見通しが良いコンポーネント指向です。

0グッド

0クリップ

投稿2018/07/08 06:03

Angular2-5でビューの描画がすべて終わってから処理をしたい場合どうしたらよいでしょうか?

たとえば、

サーバから取得してきたデータの配列を元に*ngForで<div></div>要素を作成し、
その<div>要素×nに対して slick.js などでカルーセルを作りたいとします。

その場合、
やりたいことは、「ビューの描画がすべて終わってから、カルーセル作成処理を実行」なのですが
この処理は Angular のどこに書けばよろしいでしょうか?

ngInit や ngAfterViewInit などに書いても動かなかったのですが、
ngAfterViewChecked に書いてなんとか動きました。

ただ、ngAfterViewChedcked はマウスを動かすだけで実行されてしまうので、
絶対に違うだろうなと思っており、質問させていただきました。

素人の質問で大変恐縮ですが、よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

xenbeat

2018/07/08 06:09

ソースコードがないと具体的な回答ができないので、自分が書いたソースコードとその中のどこでつまづいたか明記ください。
xenbeat

2018/07/08 06:13

Angularはhttps://stackblitz.com/を使えば簡単にソースコードの共有が可能です。Angularの場合ソースコード全体をTeratailに載せようと大変というかおさまらないので。
guest

回答2

0

サーバーから取ってきたデータがどういうルートでComponentに渡ってくるかにもよりますが、

■ @Input()経由の場合
ngOnChangesで変更検知可能

■ DIしているServiceのObservableからの場合
observable.subscribe()のコールバックでComponentのプロパティに値を入れたあとに実行。

https://stackblitz.com/edit/angular-1aqpa2?embed=1&file=src/app/app.component.ts

こんな感じでしょうか?
コートがないと説明も曖昧になってしまうのでどこかに上げてもらえるともっといい回答が得られるかもしれません。

投稿2018/07/12 02:45

編集2018/07/12 04:30
keisukeh

総合スコア657

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

lastで最終確認ができるみたいです。

https://stackoverflow.com/questions/35819264/angular-2-callback-when-ngfor-has-finished

typescript

1<li *ngFor="let item in Items; let last = last"> 2 ... 3 <span *ngIf="last">{{ngForCallback()}}</span> 4</li>

投稿2018/07/11 12:43

mosapride

総合スコア1480

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問