У меня есть веб-сайт, который использует AngularJS в качестве своей платформы.У меня нет полного доступа к фреймворку, однако я могу добавить пользовательские страницы, которые загружаются и отображаются в фреймворке.
Внешне у меня есть страница, которая динамически отображает данные графически с помощью D3js (и другихбиблиотеки).Я могу вызвать эту страницу с других сайтов, используя AJAX, и она загружается и отображается нормально.Всякий раз, когда я загружаю его из этого сайта AngularJS, кажется, что все загружается, но по какой-то причине функция 'd3' не может быть найдена.
Я пытался загрузить страницу через jQuery, AngularJS <ng-include>
, но всегдаполучить тот же результат.Я попытался загрузить библиотеки D3 с помощью require.js, тегов <script src=>
и даже вставить весь исходный код D3 на страницу безуспешно.
Я предполагаю, что это связано с каким-тостранной проблемы с областями видимости, но другие библиотеки загружаются и работают просто отлично.Есть ли другой способ создать экземпляр d3, кроме загрузки библиотеки и просто вызова d3.foo
?Делает ли d3 что-то странное с его инициализацией, которая противоречит AngularJS?
Я абсолютный новичок, когда дело доходит до AngularJS, так что ...
Вот пример того, что я пробовал:
<div data-title="Workplace Readiness"
class="external-page">
<p>
...
some explanatory stuff
...
</p>
<div id="WR">Loading...</div>
<script src="https://https://d3js.org/d3.v4.min.js"></script>
<script src="https://source.of.custom.code/guage1.js"></script>
<script type="text/javascript">
$.get('https://source.of.custom.code/workplace_readiness/', function(data){
$('#WR').html(data);
});
</script>
</div>
Страница workplace_readiness также содержит необходимые библиотеки в своем источнике, которых достаточно везде, но не на этом сайте AngularJS.