[英]How to declare and use modules, controllers, services and bootstrap manually in Angular?
i'm trying to build an AngularJS app that has one Controller, one Service and that Bootstraps manually (no ng-app
). 我正在尝试构建一个具有一个控制器,一个服务并且手动进行Bootstrap的AngularJS应用(无
ng-app
)。 The problem is that I keep having an error : 问题是我一直出错:
Argument 'AppController' is not a function, got string
参数'AppController'不是一个函数,得到了字符串
HTML 的HTML
<!DOCTYPE HTML>
<html xmlns:ng="http://angularjs.org">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0-rc.0/angular.min.js" type="text/javascript"></script>
<script src="inc/bootstrap.js" type="text/javascript"></script>
<script src="inc/controllers.js" type="text/javascript"></script>
<script src="inc/services.js" type="text/javascript"></script>
</head>
<body ng-controller="AppController">
[...]
</body>
</html>
bootstrap.js bootstrap.js
angular.element(document).ready(function() {
angular.bootstrap(document, ['htmlControllerApp']);
});
controllers.js controllers.js
angular.module('htmlControllerApp', [])
.controller('AppController', 'ConnectionService', ['$scope', function ($scope, ConnectionService) {
// Code
}]);
services.js services.js
angular.module('htmlControllerApp')
.factory('ConnectionService', ['$rootScope', function ($rootScope) {
// Code
}]);
Thanks 谢谢
EDIT - SOLUTION 编辑-解决方案
In controllers.js , use instead : 在controllers.js中 ,改用:
angular.module('htmlControllerApp')
.controller('AppController', ['$scope', 'ConnectionService', function ($scope, ConnectionService) {
// Code
}]);
In bootstrap.js , as a "good practice" : 在bootstrap.js中 ,作为“良好实践”:
angular.module('htmlControllerApp', []);
angular.element(document).ready(function() {
angular.bootstrap(document, ['htmlControllerApp']);
});
This will create the module just once in bootstrap.js and AngularJS will try to retrieve it in controllers.js and services.js . 这将在bootstrap.js中创建模块一次,AngularJS将尝试在controllers.js和services.js中检索它。
This is the page you're looking for. 这是您要查找的页面。
https://docs.angularjs.org/api/ng/function/angular.bootstrap https://docs.angularjs.org/api/ng/function/angular.bootstrap
and change this 并改变这个
angular.module('htmlControllerApp', [])
.controller('AppController', 'ConnectionService', ['$scope', function ($scope, ConnectionService) {
// Code
}]);
to this -> 对此->
angular.module('htmlControllerApp', [])
.controller('AppController', ['$scope', 'ConnectionService', function ($scope, ConnectionService) {
// Code
}]);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.