AngularJS和Require:r.js给出undefined

时间:2013-09-06 21:16:59

标签: javascript angularjs requirejs

我理解有关是否在AngularJS中使用require.js存在争议,但我现在正在这样做。我已经使用require设置和运行整个项目,现在我正在尝试使用r.js进行优化和缩小。

运行r.js并更改data-main文件中的index.html后,我现在收到angular is undefined,但无法继续。

我能够使用angular-require-seed重现相同的行为。我按照github上的说明进行安装,然后为r.js做了以下构建定义。

build.js

({
    baseUrl: "./app/js",
    name: "main",
    out: "index-built.js",
    paths: {
       angular: '../../bower_components/angular/angular',
       'angular-scenario': '../../bower_components/angular-scenario/angular-scenario',
       'angularRoute': '../../bower_components/angular-route/angular-route',
       'angular-mocks': '../../bower_components/angular-mocks/angular-mocks'
   }    
})

然后我在应用程序的顶层使用以下命令运行r.js.

r.js.cmd -o build.js

完成r.js后,我将index.html中的data-main更改为data-main="index-built.js"

这又一次导致角度为undefined。任何人都可以指出我的错误吗?

1 个答案:

答案 0 :(得分:2)

你是remembering to shim图书馆吗?

如果您是,那么您还需要在build.js中包含相同的配置。最好的方法是在main.jsthe mainConfigFile property,让它从那里获取配置值(包括上面的路径)。