0

コントローラー内でいくつかのアニメーションを作成して登録するコードがあります。残念ながら、コントローラー内にアニメーションを登録するたびに、初期化されないようです (関数が呼び出されることはありません)。

問題を説明するためにプランカーを作成しました。これで、コントローラーの外側で「createAnim1」を呼び出すと、アニメーションが正しく機能します。コントローラー内で「createAnim2」を呼び出しましたが、アニメーションが機能しません。

createAnim1();
app.controller('main', function($scope) {
  createAnim2(); //This animation does not work
});

createAnim 関数の形式は次のとおりです。

app.animation('.anim1', function() {
    return {
        ...
    }
});

明らかな何かが欠けていますか?$animate および $animateProvider のドキュメントには、これに関連するものは何も含まれていないようです。

これは、コンパイルが既に行われており、アニメーションを初期化するために必要ないくつかのステップが欠落しているという事実に関係していると思いますか? これを回避する方法はありますか?

PS: 先週から angular しか使っていないので、内部についてはよくわかりません。

編集: アレックスからのコメントの後、私がやろうとしていることを明確にする価値があると思います:

css クラス アニメーション セレクターを生成し、それらをドキュメント ヘッドに追加するコードがいくつかあります。ブラウザーがトランジションをサポートしていない場合、コードは jquery アニメーションと同等のものを生成します。DI を介してこのコードを公開するファクトリを作成しようとしましたが、このコードが (コントローラー内から) 実行されると、アニメーションをトリガーできなくなります (初期化コードは実行されません)。

4

0 に答える 0