Ответ 1
if(typeof angular == 'undefined') {
....
}
Скажем, что я хочу ссылаться на угловые объекты из CDN, но мне также хотелось бы отступить в случае отказа вызова CDN, например. указывая на локальный js файл. Когда дело доходит до JQuery, я видел примеры, в которых вы бы сделали что-то подобное в javascript:
if(typeof jQuery == 'undefined') {
....
}
Есть ли что-то подобное для angularjs, которое я могу сделать?
if(typeof angular == 'undefined') {
....
}
Я только что открыл консоль, нажав F12
(или щелкнув правой кнопкой мыши и выбрав Inspect element
, затем набрав angular
.
Если вы получите сообщение Object {version: Object, callbacks: Object}
, загрузится angular.
Если вы получаете сообщение Uncaught ReferenceError: angular is not defined
, angular не загружается.
Вы можете обнаружить, что angular CDN (Сеть доставки контента) правильно загрузил объект angular (т.е. это произойдет, если CDN не работает) если объект angular
JavaScript undefined
.
Затем вы должны вернуться к локальной копии, загруженной с помощью document.write
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.12/angular.min.js"></script>
<script type="text/javascript">
if(typeof angular == 'undefined') {
document.write(unescape("%3Cscript type='text/javascript' src='/Scripts/angular.min.js'%3E%3C/script%3E"));
}
<script type="text/javascript">
if(window.angular === undefined) {
....
}
Или сделайте это так:
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.22/angular.min.js"></script>
<script>(typeof angular != 'undefined') || document.write('<script src="js/angular.min.js")<\/script>')</script>
Я использую этот простой код, прежде чем начинать узнавать, загрузил ли код
<body ng-app="">
{{3 + 3}}
</body>
Если это результат в 6, значит, ваш angular загружен еще не.