我是一名试用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容器外面。
答案 0 :(得分:1)
您不能两次声明相同的模块名称。
最好将第二个(或更多)模块作为主要模块的依赖项
var AngularApp = angular.module('SharePointAngApp',['SharePointAngApp-2']);
var JCAngularApp = angular.module('SharePointAngApp-2',['ngSanitize']);
此外,您可能需要考虑手动引导应用而不是使用ng-app
这将允许您根据需要构建依赖关系数组