我点击了一个按钮,弹出一个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]
});
答案 0 :(得分:0)
你可以使用$ compile来预编译东西。但是,如果您将有问题的源代码添加到问题中,可以给出更好的答案。
<强>更新强>
看到你的代码片段之后,预先填充你的templateCache似乎更明智,而不是我上面提到的。您可以使用$templateCache.put。
$templateCache.put('mytemplate.html', '<b>My</b> template');
最好在构建过程中添加;使用Grunt或Gulp可以使用非常方便的插件。