4

クリックするとmd-dialogがポップアップするボタンがあります。このダイアログにはかなり重い html と javascript が含まれており、ボタンが最初にクリックされたとき、ダイアログが表示されるまでに約 0.5 秒かかります (DOM が作成されているためだと思いますが、二度と発生しないためです)。この遅延を回避する方法はありますか?

更新:テンプレートを事前にコンパイルする必要があるという問題に絞り込みました。コンパイル済みのテンプレートをダイアログに添付するにはどうすればよいですか? これが私のダイアログです:

$mdDialog.show({
    escapeToClose: true,
    parent: parentEl,
    targetEvent: $event,
    templateUrl: "someurl", //This gets a big html file
    locals: {
        items: $scope.items
    },
    controller: ["$scope", "$mdDialog", DialogController]
    });
4

1 に答える 1

0

$compile を使用してプリコンパイルできます。ただし、問題のあるソースコードを質問に追加すると、より良い答えが得られます。

アップデート:

あなたのコード スニペットを見た後、私が上で述べたことの代わりに、templateCache を事前に入力する方が賢明なようです。これには$templateCache.putを使用できます。

$templateCache.put('mytemplate.html', '<b>My</b> template');

ビルド プロセス中にこれを追加することをお勧めします。Grunt または Gulp を使用すると、非常に便利なプラグインを利用できます。

于 2015-07-21T10:27:29.313 に答える