2015-07-21 2 views
3

У меня есть кнопка, по щелчку которой открывается md-диалог. В этом диалоговом окне содержится довольно тяжелый html и javascript, и при первом нажатии кнопки требуется около половины секунды, чтобы отобразить диалоговое окно (я предполагаю, что DOM создается, так как это не повторится). Есть ли способ избежать этого отставания?Задержка загрузки углового материала md-dialog

UPDATE: Я сузил проблему, требуя предварительной компиляции шаблона. Как прикрепить скомпилированный шаблон к диалоговому окну? Вот мой диалог:

$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

Вы можете использовать компиляцию $, чтобы предварительно скомпилировать вещи. Однако лучше дать ответ, если вы добавите свой проблемный исходный код в свой вопрос.

UPDATE:

После просмотра фрагмента кода, кажется, разумнее заранее заполнить ваш templateCache, вместо того, что я уже упоминал выше. Для этого вы можете использовать $templateCache.put.

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

Желательно добавить это во время процесса сборки; используя Grunt или Gulp, доступны очень удобные плагины.

+1

Как скомпилировать шаблон в mdDialog? –

+0

Пожалуйста, добавьте свой проблемный исходный код, чтобы мы могли дать лучший ответ :) – Marco

+0

В этом нет проблемного исходного кода; это просто большой файл, который вызывает замедление. Это типичная настройка mdDialog, но я обновил вопрос для вашей справки. –