1

我正在构建一个新的 angularjs 应用程序,并希望使用 requirejs 来管理我的依赖项。我正在努力让它发挥作用,并想知道我是否只是误解了某些东西。我还想使用 twitter bootstrap 和 restangular 来进行安静的通话。尝试设置它会导致无法找到它的错误。我的主要,js配置如下:

require.config({
paths: {
    angular: '../vendor/angular',    
    twitterbootstrap: '../vendor/bootstrap/ui-bootstrap-tpls-0.6.0',
    restangular: '../vendor/restangular',
    domReady: '../vendor/domReady'
},
shim: {
    angular : {'exports' : 'angular'},
    restangular: {
        deps: ['underscore']
    }
   }
}); 

require([
'angular',
'app',
'domReady',
'twitterbootstrap',
//'underscore',
'restangular',
],
function (angular, app, domReady) {}...

我收到以下错误:

角度未定义

没有模块 myApp

没有模块 twitterbootstrap

我已经尝试了几种变体,但无法让它很好地一起玩。我还缺少其他东西吗-我将其与几个示例进行了比较,一切似乎都井井有条。

4

1 回答 1

0

混合 Angular 和 Require 是很棘手的。我在 GitHub ( https://github.com/nikospara/angular-require-lazy ) 中有一个实验项目,它以一些 hacky 方式工作。你可以看看作为一个例子。

对这个项目的意见评论也很受欢迎。


对于您的错误:

打开一个网络控制台(例如在 Firebug 中)并检查 RequireJS 调用的路径。这些路径是否正确?

Angular 模块(与 Require/AMD 模块相比)有自己的依赖关系。您必须确保 Angular 模块的 .js 文件在 Angular 之后加载。一种方法是对它们进行垫片填充,例如,对于restangular,它将类似于:

shim: {
    ...
    restangular: {
        deps: ["underscore", "angular"]
    }
}

<script>否则,您可以按正确的顺序加载带有标准标签的 angular 和其他脚本。

这些是一般方向。如果您找不到问题的原因,也许您应该发布更多代码;如果可能的话,小提琴/plunkr 也会很棒。

SO中的相关帖子:仅在需要时动态注入模块

于 2013-09-16T14:16:36.050 回答