Надеюсь, кто-то может мне помочь... Мы новичок в angularJS, но решили использовать его в предстоящем проекте. Одной из вещей, которую мы хотим внедрить с самого начала, является мониторинг использования функций приложений, и мы планируем использовать для этого Microsoft Application Insights. Я был очень рад узнать, что уже создан модуль angularJS для работы с аналитикой приложений, рекомендованной на начальной странице Microsoft для App Insights angular-appinsights. К сожалению, у нас очень большие трудности с загрузкой этого модуля.
Почти уверен, что проблема здесь в нас, я чувствую, что если бы мы знали немного больше об angularJS, мы могли бы понять это, но, поскольку мы только нарезаем зубы, я обращаюсь к SO за помощью!
Итак, вот часть index.html, где мы загружаем все наши скрипты:
<!-- 3rd party libraries -->
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular-route.min.js"></script>
<script src="scripts/angular-local-storage.min.js"></script>
<script src="scripts/loading-bar.min.js"></script>
<script src="scripts/angular-appinsights.js"></script>
<!-- Load app main script -->
<script src="app/app.js"></script>
Вот соответствующая часть app.js, где все подключено:
var app = angular.module('MTCAPITester', ['ngRoute', 'LocalStorageModule', 'angular-loading-bar','angular-appinsights']);
app.config(['$routeProvider','insightsProvider',function ($routeProvider,insightsProvider) {
$routeProvider.when("/home", {
controller: "homeController",
templateUrl: "/app/views/home.html"
});
$routeProvider.when("/login", {
controller: "loginController",
templateUrl: "/app/views/login.html"
});
$routeProvider.otherwise({ redirectTo: "/home" });
insightsProvider.start('our app insights key here');}]);
А вот javascript для анализа приложений, который вы должны поместить в тег head файла index.html:
<script type="text/javascript">
var appInsights = window.appInsights || function (config) {
function s(config) { t[config] = function () { var i = arguments; t.queue.push(function () { t[config].apply(t, i) }) } } var t = { config: config }, r = document, f = window, e = "script", o = r.createElement(e), i, u; for (o.src = config.url || "//az416426.vo.msecnd.net/scripts/a/ai.0.js", r.getElementsByTagName(e)[0].parentNode.appendChild(o), t.cookie = r.cookie, t.queue = [], i = ["Event", "Exception", "Metric", "PageView", "Trace"]; i.length;) s("track" + i.pop()); return config.disableExceptionTracking || (i = "onerror", s("_" + i), u = f[i], f[i] = function (config, r, f, e, o) { var s = u && u(config, r, f, e, o); return s !== !0 && t["_" + i](config, r, f, e, o), s }), t
};
window.appInsights = appInsights;
</script>
К сожалению, мы постоянно получаем уродливый модуль angularrr, который, как я полагаю, говорит мне, что он не может загрузить этот модуль b/c, если я удалю код, связанный с этим модулем, все работает нормально.
Неперехваченная ошибка: [$injector:modulerr] http://errors.angularjs.org/1.2.16/$injector/modulerr?p0=MTCAPITester&p1=Er…gleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.16%2Fangular.min.js%3A32%3A445)
Может ли кто-нибудь помочь мне понять, чего нам здесь не хватает? Я не совсем понимаю, где в игру вступает ссылка на инсайтsProvider, поскольку я нигде не определил это и не вижу его определения в его библиотеку.
Любая помощь в этом будет очень признательна, это кажется довольно прямолинейным, но я просто недостаточно удобен с angularJS на данный момент, чтобы понять, где/почему это терпит неудачу...