4

我有一个点击按钮,会弹出一个 md 对话框。此对话框包含一些相当繁重的 html 和 javascript,第一次单击按钮时,显示对话框大约需要半秒钟(我猜是因为正在创建 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.put

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

最好在构建过程中添加它;使用 Grunt 或 Gulp 有非常方便的插件可用。

于 2015-07-21T10:27:29.313 回答