将AngularJS添加到Brunch应用程序时,“未捕获的对象”

时间:2014-06-28 15:21:48

标签: angularjs brunch

前言:由于我是AngularJS和Brunch的新手,我想从头开始学习基础知识,构建和应用程序(即来自dead-simple Brunch骨架)。我很清楚存在专门处理AngularJS / Brunch应用程序引导的骷髅,我一直在研究它们的代码,以便找出它们的工作原理#34;。但作为我的新手,我没有看到解决问题的方法......

问题:只要我将ng-app(没有任何值)添加到html元素,AngularJS就可以了。但只要我为此属性添加一个值(即ng-app="MyApp"),AngularJS就会停止工作。 Chrome中的控制台告诉我它遇到了" Uncaught object"在angular.js的第1695行

似乎Brunch添加的javascript导致了这个问题:如果我删除公共文件夹的app.js文件中Brunch生成的最顶层的代码,那么它又有效。但很明显,这不能解决我的问题。

以下是我app/assets/index.html的代码:

<html ng-app="myApp">
    <head>
        <title>Test</title>
    </head>
    <body>
        <script src="app.js"></script>
    </body>
</html>

我的app/app.coffee中的代码(在结果public/app.js中与Brunch和AngularJS代码连接在一起):

angular.module("myApp", [])

问题:我错过了什么?我看到,在特定的骨架中,index.html文件包含<script>require('MyApp')</script>,但添加它并不能解决问题。

对于像我这样的早午餐新秀的任何暗示都非常感激。谢谢!

1 个答案:

答案 0 :(得分:0)

好的,我终于明白了。确实需要额外的<script>require('app');</script>代码段。但是,请确保此require()调用的参数与创建Angular应用程序的文件名相匹配。

示例:

  • 您的HTML标记使用ng-app="myAwesomeApp"。相应的Javascript 代码需要使用angular.module("myAwesomeApp", [])引用该代码。
  • 如果您的Javascript 文件(其中创建了Angular模块)只是简称为app.js,那么相应的<script>require('app');</script>应该反映出来。如果您还选择为Javascript 文件命名 myAwesomeApp.js,请将其与<script>require('myAwesomeApp');</script>匹配。