Я новый и для JavaScript & AngularJS. Я создаю приложение, которое говорит с системой управления зданием: у него есть модуль под названием «JaceMod», содержащий службу для связи с BMS и извлечения данных из него. Я добавляю функциональность для графических данных с помощью Dygraphs, и я создал директиву для создания экземпляра графа и заполнения его данными.Почему мой javascript-файл не загружается?
Я хотел бы поместить мою директиву Dygraphs в модуль под названием «dygraphs» в отдельном файле «angular-dygraphs.js», поэтому я могу повторно использовать его позже и потребовать, чтобы этот модуль был зависимым в ' JaceMod. Как это:
'use strict';
console.log('Loading angular-dygraphs.js');
angular.module('dygraphs', []);
angular.module('dygraphs').directive('mrhDygraph', function ($parse) {
return {
...etc ...
};
});
И тогда главный файл 'app.js':
'use strict';
console.log('Loading app.js');
angular.module('JaceMod', ['dygraphs']);
angular.module('JaceMod').factory('JaceData', function ($http, $timeout) {
var JaceDataService = {};
...etc ...
return JaceDataService;
});
angular.module('JaceMod').controller('myCtrl', function myCtrl($scope, JaceData) {
JaceData.initialise($scope);
JaceData.subscribe($scope);
});
HTML, выглядит следующим образом:
<html lang="en" ng-app="JaceMod">
<head>
<meta charset="utf-8">
<title>AngularJACE</title>
<style type="text/css">
body {font-family: Trebuchet MS,Helvetica,Arial,sans-serif; }
</style>
</head>
<body ng-controller="myCtrl">
<div mrh-dygraph="graphData"
mrh-dygraph-options="{xlabel: 'Local Time', legend: 'always',
showRangeSelector: true, labels: ['Time', 'Outside'],
ylabel: 'Temperature (ºC)', height: 420}"
style="width: 100%; height 420px;"/>
<script src="dygraph-combined.js"></script>
<script src="angular.js"></script>
<script src="angular-dygraphs.js"/>
<script src="app.js"></script>
</body>
Но когда я загружаю это html, я вижу мое консольное сообщение «Загрузка angular-dygraphs.js», за которым следует ошибка «Ошибка: нет модуля: JaceMod». Я никогда не вижу сообщение журнала в app.js
. Если я переключу порядок загрузки двух последних файлов javascript раунда, я вижу, что app.js загружается, а сообщение об ошибке - «Ошибка: нет модуля: dygraphs». Второй загруженный файл, кажется, никогда не загружается.
Если я скопирую код из angular-dygraphs.js в app.js, оставив директиву в своем собственном модуле, он работает.
Почему это происходит? Невозможно ли поместить модули в свои собственные файлы или что-то еще? Документы не были существенно помочь ...
отредактирован ADD
HTML-& JS файлы все в том же каталоге, в том числе dygraphs & угловые библиотеки. Я загружаю html из файла, без участия сервера.
UPDATE
Я скопировал все от углового dygraphs.js в app.js и закомментировал полноту углового-dygraphs.js: все еще получает проблему, app.js не загружается.
Вы уверены, что там не ошибка в app.js где-нибудь? Вы когда-нибудь видели сообщение «Loading app.js»? Можете ли вы создать плункер, показывающий проблему? –
Насколько я могу судить, нет никакой ошибки в app.js. Я вижу сообщение «загрузка» из того файла, который загружен первым, и если я скопирую и вставляю содержимое angular-dygraphs.js в app.js, я вижу как загрузку сообщений, так и работу, как ожидалось, - график отображается и обновляется как данные в реальном времени. Как я уже сказал, я новичок в Javascript, и я понятия не имею, как создать плункер :-(Я посмотрю на него, хотя. – Max