在ng-app声明中定义AngularJS代码

时间:2016-09-15 00:25:11

标签: javascript angularjs

我是一名试用AngularJS的SharePoint管理员。我正在开发一个页面,该页面将在页面的不同部分包含几个AngularJS应用程序。每个应用程序都在一个单独的包含文件中定义,因此javascript将嵌入到页面正文中。由于围绕页面上多个应用程序的问题,我想,让我们设置母版页以获得单个ng-app声明。

<body ng-app="SharePointAngApp">

正如我所说,代码定义位于使用内容编辑器Web部件的正文标记插入内部。

var AngularApp = angular.module('SharePointAngApp',[]);
AngularApp.controller('spStockTicker',function($scope, $http) {

var JCAngularApp = angular.module('SharePointAngApp',['ngSanitize']);
JCAngularApp.controller('spJimConnect',['$scope','$http','$sce',function($scope, $http,$sce) {

但是,现在我收到一个错误:angular.min.js:107 Error: [ng:areq] http://errors.angularjs.org/1.4.5/ng/areq?p0=spJimConnect&p1=not%20a%20function%2C%20got%20undefined

这是可能的,还是javascript必须在ng-app容器外面。

1 个答案:

答案 0 :(得分:1)

您不能两次声明相同的模块名称。

最好将第二个(或更多)模块作为主要模块的依赖项

var AngularApp = angular.module('SharePointAngApp',['SharePointAngApp-2']);
var JCAngularApp = angular.module('SharePointAngApp-2',['ngSanitize']);

此外,您可能需要考虑手动引导应用而不是使用ng-app

这将允许您根据需要构建依赖关系数组