Ранее, я использовал $sce.trustAsHtml(aString) для вставки строки (например, <html>...</html>) в шаблон <div ng-bind-html="content"></div> для отображения графика при загрузке сгенерированного URL-адреса
.state('urls', {
url: '/urls/{id}',
template: '<div ng-bind-html="content"></div>',
controller: 'UrlCtrl',
resolve: {
url: ['$stateParams', 'urls', function ($stateParams, urls) {
return urls.get($stateParams.id);
}]
}
})
app.controller('UrlCtrl', ['$sce', '$scope', 'url', function($sce, $scope, url) {
$scope.content = $sce.trustAsHtml(url.content);
}]);
Теперь html для генерации графика содержит ссылки на другие файлы, например <script src="script.js"></script>. Поэтому для рисования графика мне нужна папка с файлами (.html, .css, .js). Я могу поместить всю папку на свой сервер, но проблема в , как вставить эти файлы в шаблон.
Я попробовал templateUrl: 'http://localhost:3000/tmp/ZPBSytN5GpOwQN51AAAD/index.html', загрузка localhost:3000/#/urls/58b8c55b5d18ed6163324fb4 в браузере загружает html-страницу. Однако script.js НЕ загружается, в журнале консоли отображается ошибка Failed to load resource: the server responded with a status of 404 (Not Found).
Кто-нибудь знает, как изменить это?
В противном случае есть ли другие способы сказать что-то вроде src=http://localhost:3000/tmp/ZPBSytN5GpOwQN51AAAD/index.html (например, в iframe)? Затем <script src="script.js"></script> в index.html будет знать, что это относится к script.js в той же папке.
Изменить 1: Следуя комментарию @Icycool, я изменился на templateUrl: '/htmls/test.html', а test.html содержит <div ng-include="'http://localhost:3000/tmp/ZPBSytN5GpOwQN51AAAD/index.html'"></div>. Тест показал, что он загрузил test.html и index.html, но NOT script.js: GET http://localhost:3000/script.js?_=1488543470023 404 (Not Found).
Изменить 2: Я создал два файла для тестирования: index.html и script.js. Вот plunker, ни template, ни templateUrl не работает, как описано...