Мне интересно, как угловые работы с предзагрузочными директивами, так как у меня есть проблема с директивой, которая находится в теге <script>
и ng-template.Угловая директива внутри ng-шаблона с модальным
Когда я приостанавливаю выполнение в hrome dev-tools во время загрузки исходного документа, я могу ясно видеть, что код внутри контроллера директивы не вызывается, если моя директива лежит в каком-либо произвольном шаблоне. Вот пример кода, когда, например, myDirective входит в index.html в составе MyModule .js модуля, также включены как в индексе, и в основном модуле приложения:
Это HTML какой-нибудь другой директивы, содержащие проблемное myDirective
<script type="text/ng-template" id="callThis">
<myDirective></myDirective>
</script>`
и я называю его по щелчку с ngDialog как этот
ngDialog.open({
template: 'callThis',
scope: $scope
});
и он не может выполнить директиву, так как он не имеет каких-либо HTML для работы с (тыс ats ошибка, о некотором элементе html отсутствует).
Наконец вот код для модуля, который держит myDirective
angular.module('myModule', ['myDirectiveTemplates', 'myDirectiveDirective'])
angular.module('myDirectiveTemplates', []).run(["$templateCache", function($templateCache) {$templateCache.put("myDirectiveTemplate.html","<h1></h1>");}]);
angular.module('myDirectiveDirective', []).directive('myDirective', function ($window, $templateCache) {
return {
restrict: 'E',
template: $templateCache.get('myDirectiveTemplate.html'),
controller: function($scope) {
//some arbitrary code
}
};
})
Интересно, если я поставил <my-directive></my-directive>
прямо в файл index.html он работает нормально, а код внутри контроллера загружается при запуске. Я не знаю, как это решить.
У меня те же трудности. Удалось ли вам это решить? –