index.ejs中的Angular Controller错误

时间:2016-12-28 10:28:43

标签: javascript angularjs node.js angular-material mean-stack

我有一个index.ejs页面,它有一个slideMenu,可以在index.ejs页面中插入其他HTML视图。

每个html视图都有自己的控制器。每个控制器都在自己的.js文件中。我将所有这些脚本包含在index.ejs文件中,但这会导致以下问题,并且HTML视图无法正常加载。

<!DOCTYPE html>
<html ng-app="myapp" xmlns:width="http://www.w3.org/1999/xhtml">
<head>
    <title><%= title %></title>
    <link rel='stylesheet' href='/stylesheets/style.css'/>
</head>

<body layout="column">
<!-- ANGULAR MATERIAL DEPENDENCIES -->
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/angular_material/1.0.0/angular-material.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-animate.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-aria.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-messages.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angular_material/1.0.0/angular-material.js"></script>
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">

<!-- ANGULAR MATERIAL DEPENDENCIES END-->


<md-content>
            <div ng-include="'/html/newCode/addCircleTimeSong.html'"></div>

</md-content>

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.js"></script>

<script src="javascripts/newCode/Controller_CircleTimeSongPage.js"></script>
<script src="javascripts/newCode/Controller_ObservationPage.js"></script>
<script src="javascripts/newCode/Controller_CircleTimeActivityPage.js"></script>


</body>
</html>

我收到以下错误:

Error: [ng:areq] http://errors.angularjs.org/1.4.8/ng/areq?p0=CircleTimeSongPageController&p1=not%20aNaNunction%2C%20got%20undefined

1 个答案:

答案 0 :(得分:1)

如果您已撰写此声明

var mainApp = angular.module("myapp", ['ngMaterial']);

在所有控制器文件中。这是导致此错误的原因。此语句创建并初始化myapp模块。因此,如果您在所有控制器文件中使用此语句,则每次都会重新初始化myApp因此出现角度误差。

将其替换为其他控制器文件中的此语句

var mainApp = angular.module("myapp");

上述语句表示已经创建/初始化myapp模块的提取/引用。