我正在创建一个NodeJS应用程序,它使用AngularJS作为它的前端。我也使用RequireJS加载JS依赖项,然后实例化Angular应用程序。这是我想要做的:
在我的HTML文件中(用Jade编写)我包含RequireJS文件,然后使用' data-main'来调用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'文件夹设置为提供静态文件,这工作正常。
每当我尝试使用' angular.bootstrap ...'来实例化AngularJS应用程序时它告诉我Angular没有定义。我无法理解为什么会发生这种情况,并且还没有能够解决这个问题。 O看不到我对Angular文件的路由有任何问题。任何人都可以看到或暗示为什么会这样吗?
谢谢!
答案 0 :(得分:0)
刚设法破解它!我必须将'angular.bootstrap'调用放在require.config方法的回调函数中,因为应用程序在定义之前尝试调用AngularJS。
希望这有助于将来的任何人。