2015-11-11 4 views
0

Я создаю приложение NodeJS, которое использует AngularJS для его интерфейса. Я также использую RequireJS для загрузки в JS-зависимостях, а затем создаю экземпляр приложения Angular. Вот то, что я пытаюсь сделать:Использование RequireJS с AngularJS. Проблемы с загрузкой AngularJS

В моем HTML файл (написанный в Jade) я включаю файлы RequireJS, а затем вызвать конфигурационный RequireJS с помощью атрибута «данных магистрального»:

doctype html 
    html 
     head 
      title= title 
      link(rel='stylesheet', href='/stylesheets/style.css') 
     body 
      block content 

     script(type="text/javascript" src="/bower_components/requirejs/require.js" data-main="/main.js") 

Моих main.js файл выглядит следующим образом:

"use strict"; 

function(require) { 
    require(['/assets/requiredPathsAndShim.js'], function(requiredPathsAndShim) { 
     require.config({ 
      maps : { 
       // Maps 
      }, 
      paths : requiredPathsAndShim.paths, 
      shim : { 
       // Modules and their dependent modules 
      } 
     }); 

     angular.bootstrap(document, ['appNameInHere']); 
    }); 
})(require); 

у меня есть внешний файл, который содержит объект с «/assets/requiredPathsAndShim.js» мои маршруты и это выглядит следующим образом:

"use strict"; 

(function(define) { 
    define([], function() { 
     return { 
      paths : { 
       'angular' : '/bower_components/angular/angular' 
      } 
     }; 
    }); 
})(define); 

Я добавлю, что мое приложение NodeJS/Express имеет папку «bower_components», установленную для обслуживания статических файлов, и это работает нормально.

Всякий раз, когда я пытаюсь создать экземпляр приложения AngularJS с помощью метода angular.bootstrap ..., он говорит мне, что Angular не определен. Я не понимаю, почему это происходит, и пока не удалось понять это. O не видит проблем с моими маршрутами в файлы Angular. Может ли кто-нибудь увидеть или предложить, почему это может произойти?

Спасибо!

ответ

0

Просто удалось взломать его! Мне пришлось поместить вызов «angular.bootstrap» в функцию обратного вызова метода require.config, поскольку приложение пыталось вызвать AngularJS до того, как оно было определено.

Надеюсь, это поможет любому в будущем.

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