2013-06-19 4 views
1

Я новый и для 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 не загружается.

+0

Вы уверены, что там не ошибка в app.js где-нибудь? Вы когда-нибудь видели сообщение «Loading app.js»? Можете ли вы создать плункер, показывающий проблему? –

+0

Насколько я могу судить, нет никакой ошибки в app.js. Я вижу сообщение «загрузка» из того файла, который загружен первым, и если я скопирую и вставляю содержимое angular-dygraphs.js в app.js, я вижу как загрузку сообщений, так и работу, как ожидалось, - график отображается и обновляется как данные в реальном времени. Как я уже сказал, я новичок в Javascript, и я понятия не имею, как создать плункер :-(Я посмотрю на него, хотя. – Max

ответ

5

Ваш тэг скрипта angular-dygraphs.js не закрыт, поэтому он никогда не читает app.js. теги сценария не может быть самозакрывающиеся:

<script src="angular-dygraphs.js"/> 

должен быть

<script src="angular-dygraphs.js"></script> 
+0

Я этого не знал: однако я перешел на явный конечный тег И это не имело никакого значения. Я использую Safari 5.1.9 в Mac OS 10.6.8, если это имеет значение. – Max

+1

@Max Попробуйте добавить 'type =" text/javascript "к тегу, а также. – K3N

+0

@Ken - добавлен атрибут, без различия, насколько я могу видеть – Max

Смежные вопросы